Spec-Zone.ru › Node.js 12 LTS

Консоль

Устойчивость: 2 - Стабильно

Исходный код: lib/console.js

Модуль console предоставляет простую консоль отладки, аналогичную механизму консоли JavaScript, предоставляемому веб-браузерами.

Модуль экспортирует два конкретных компонента:

  • Класс Console с методами, такими как console.log(), console.error() и console.warn(), которые могут быть использованы для записи в любой поток Node.js.
  • Глобальный экземпляр console , настроенный для записи в process.stdout и process.stderr. Глобальный экземпляр console может быть использован без вызова require('console').

Предупреждение: Методы глобального объекта консоли не являются ни последовательно синхронными, как API браузера, которые они имитируют, ни последовательно асинхронными, как все другие потоки Node.js. Для получения дополнительной информации см. примечание о вводе-выводе процесса.

Пример использования глобального console:

console.log('hello world');
// Prints: hello world, to stdout
console.log('hello %s', 'world');
// Prints: hello world, to stdout
console.error(new Error('Whoops, something bad happened'));
// Prints: [Error: Whoops, something bad happened], to stderr

const name = 'Will Robinson';
console.warn(`Danger ${name}! Danger!`);
// Prints: Danger Will Robinson! Danger!, to stderr

Пример использования класса Console:

const out = getStreamSomehow();
const err = getStreamSomehow();
const myConsole = new console.Console(out, err);

myConsole.log('hello world');
// Prints: hello world, to out
myConsole.log('hello %s', 'world');
// Prints: hello world, to out
myConsole.error(new Error('Whoops, something bad happened'));
// Prints: [Error: Whoops, something bad happened], to err

const name = 'Will Robinson';
myConsole.warn(`Danger ${name}! Danger!`);
// Prints: Danger Will Robinson! Danger!, to err

Класс: Console

История
Версия Изменения
v8.0.0

Ошибки, возникающие при записи в базовые потоки, теперь по умолчанию игнорируются.

Класс Console может быть использован для создания простого регистратора с настраиваемыми потоками вывода, к которому можно обратиться, используя либо require('console').Console или console.Console (или их деструктурированные аналоги):

const { Console } = require('console');
const { Console } = console;

new Console(stdout[, stderr][, ignoreErrors])

new Console(options)

История
Версия Изменения
v12.17.0

Введён параметр groupIndentation.

v11.7.0

Введён параметр inspectOptions.

v10.0.0

Конструктор Console теперь поддерживает аргумент options, и введён параметр colorMode.

v8.0.0

Введён параметр ignoreErrors.

  • options <Объект>
    • stdout <stream.Writable>
    • stderr <stream.Writable>
    • ignoreErrors <boolean> Игнорировать ошибки при записи в базовые потоки. По умолчанию: true.
    • colorMode <boolean> | <string> Включить поддержку цвета для этого экземпляра Console. Установка значения true включает отображение цвета при проверке значений. Установка значения false отключает отображение цвета при проверке значений. Установка значения 'auto' делает поддержку цвета зависимой от значения свойства isTTY и значения, возвращаемого getColorDepth() для соответствующего потока. Этот параметр не может быть использован, если также установлен параметр inspectOptions.colors. По умолчанию: 'auto'.
    • inspectOptions <Объект> Указывает параметры, передаваемые util.inspect().
    • groupIndentation <число> Установить отступ группы. По умолчанию: 2.

Создаёт новый экземпляр Console с одним или двумя экземплярами потоков для записи. stdout — поток для записи логов или информации. stderr используется для предупреждений или ошибок. Если stderr не указан, stdout используется для stderr.

const output = fs.createWriteStream('./stdout.log');
const errorOutput = fs.createWriteStream('./stderr.log');
// Custom simple logger
const logger = new Console({ stdout: output, stderr: errorOutput });
// use it like console
const count = 5;
logger.log('count: %d', count);
// In stdout.log: count 5

Глобальный объект console — это специальный экземпляр Console, чьи данные выводятся в process.stdout и process.stderr. Это эквивалентно вызову:

new Console({ stdout: process.stdout, stderr: process.stderr });

console.assert(value[, ...message])

История
Версия Изменения
v10.0.0

Реализация теперь соответствует спецификации и больше не выбрасывает исключений.

v0.1.101

Добавлен в: v0.1.101

  • value <любое> Значение, проверяемое на истинность.
  • ...message <любое> Все аргументы, кроме value, используются в качестве сообщения об ошибке.

console.assert() выводит сообщение, если value имеет ложное значение или опущен. Он только выводит сообщение и не влияет на выполнение. Вывод всегда начинается с "Assertion failed". Если указано, message форматируется с помощью util.format().

Если value имеет истинное значение, ничего не происходит.

console.assert(true, 'does nothing');

console.assert(false, 'Whoops %s work', 'didn\'t');
// Assertion failed: Whoops didn't work

console.assert();
// Assertion failed

console.clear()

Добавлен в: v8.3.0

Когда stdout является TTY, вызов console.clear() попытается очистить TTY. Когда stdout не является TTY, этот метод ничего не делает.

Конкретная операция console.clear() может различаться в зависимости от операционной системы и типа терминала. Для большинства операционных систем Linux console.clear() действует аналогично команде оболочки clear. В Windows console.clear() очистит только вывод в текущем окне терминала для бинарного файла Node.js.

console.count([label])

Добавлен в: v8.3.0
  • label <строка> Метка отображения для счётчика. По умолчанию: 'default'.

Поддерживает внутренний счётчик, специфичный для label, и выводит в stdout число вызовов console.count() с заданной label.

> console.count()
default: 1
undefined
> console.count('default')
default: 2
undefined
> console.count('abc')
abc: 1
undefined
> console.count('xyz')
xyz: 1
undefined
> console.count('abc')
abc: 2
undefined
> console.count()
default: 3
undefined
>

console.countReset([label])

Добавлен в: v8.3.0
  • label <строка> Метка отображения для счётчика. По умолчанию: 'default'.

Сбрасывает внутренний счётчик, специфичный для label.

> console.count('abc');
abc: 1
undefined
> console.countReset('abc');
undefined
> console.count('abc');
abc: 1
undefined
>

console.debug(data[, ...args])

История
Версия Изменения
v8.10.0

console.debug теперь является псевдонимом для console.log.

v8.0.0

Добавлен в: v8.0.0

  • data <любое>
  • ...args <любое>

Функция console.debug() является псевдонимом для console.log().

console.dir(obj[, options])

Добавлен в: v0.1.101
  • obj <любое>
  • options <Объект>
    • showHidden <boolean> Если true, то неперечисляемые и символьные свойства объекта также будут показаны. По умолчанию: false.
    • depth <число> Указывает util.inspect() на то, сколько раз рекурсировать при форматировании объекта. Это полезно для проверки больших сложных объектов. Чтобы рекурсировать бесконечно, передайте null. По умолчанию: 2.
    • colors <boolean> Если true, то вывод будет стилизован с помощью кодов ANSI цвета. Цвета настраиваются; см. настройка цветов util.inspect(). По умолчанию: false.

Использует util.inspect() для obj и выводит полученную строку в stdout. Эта функция огибает любую пользовательскую функцию inspect() , определённую в obj.

console.dirxml(...data)

История
Версия Изменения
v9.3.0

console.dirxml теперь вызывает console.log для своих аргументов.

v8.0.0

Добавлен в: v8.0.0

  • ...data <любое>

Этот метод вызывает console.log(), передавая ему полученные аргументы. Этот метод не производит никакого форматирования XML.

console.error([data][, ...args])

Добавлен в: v0.1.100
  • data <any>
  • ...args <any>

Выводит в stderr с новой строкой. Можно передать несколько аргументов, первый из которых используется как основное сообщение, а все остальные — как значения подстановки, аналогично printf(3) (аргументы передаются в util.format()).

const code = 5;
console.error('error #%d', code);
// Prints: error #5, to stderr
console.error('error', code);
// Prints: error 5, to stderr

Если элементы форматирования (например, %d) не найдены в первой строке, то для каждого аргумента вызывается util.inspect(), и полученные строковые значения конкатенируются. Дополнительная информация содержится в util.format().

console.group([...label])

Добавлена в: v8.5.0
  • ...label <any>

Увеличивает отступ последующих строк на groupIndentation пробелов.

Если предоставлены один или несколько label, они будут выведены первыми без дополнительного отступа.

console.groupCollapsed()

Добавлена в: v8.5.0

Псевдоним для console.group().

console.groupEnd()

Добавлена в: v8.5.0

Уменьшает отступ последующих строк на groupIndentation пробелов.

console.info([data][, ...args])

Добавлена в: v0.1.100
  • data <any>
  • ...args <any>

Функция console.info() — псевдоним для console.log().

console.log([data][, ...args])

Добавлена в: v0.1.100
  • data <any>
  • ...args <any>

Выводит в stdout с новой строкой. Можно передать несколько аргументов, первый из которых используется как основное сообщение, а все остальные — как значения подстановки, аналогично printf(3) (аргументы передаются в util.format()).

const count = 5;
console.log('count: %d', count);
// Prints: count: 5, to stdout
console.log('count:', count);
// Prints: count: 5, to stdout

Дополнительная информация содержится в util.format().

console.table(tabularData[, properties])

Добавлена в: v10.0.0
  • tabularData <any>
  • properties <string[]> Альтернативные свойства для построения таблицы.

Попытка создать таблицу со столбцами свойств tabularData (или использовать properties) и строками tabularData, и вывести её. Если таблица не может быть обработана, возвращается просто лог аргументов.

// These can't be parsed as tabular data
console.table(Symbol());
// Symbol()

console.table(undefined);
// undefined

console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }]);
// ┌─────────┬─────┬─────┐
// │ (index) │  a  │  b  │
// ├─────────┼─────┼─────┤
// │    0    │  1  │ 'Y' │
// │    1    │ 'Z' │  2  │
// └─────────┴─────┴─────┘

console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }], ['a']);
// ┌─────────┬─────┐
// │ (index) │  a  │
// ├─────────┼─────┤
// │    0    │  1  │
// │    1    │ 'Z' │
// └─────────┴─────┘

console.time([label])

Добавлена в: v0.1.104
  • label <string> По умолчанию: 'default'

Запускает таймер, который можно использовать для вычисления продолжительности операции. Таймеры идентифицируются уникальным label. Используйте тот же label, что и при вызове console.timeEnd(), чтобы остановить таймер и вывести время в миллисекундах в stdout. Время работы таймеров точно до миллисекунд.

console.timeEnd([label])

История
Версия Изменения
v6.0.0

Этот метод больше не поддерживает несколько вызовов, которые не соответствуют отдельным вызовам console.time(); см. подробности ниже.

v0.1.104

Добавлена в: v0.1.104

  • label <string> По умолчанию: 'default'

Останавливает таймер, ранее запущенный с помощью вызова console.time(), и выводит результат в stdout.

console.time('100-elements');
for (let i = 0; i < 100; i++) {}
console.timeEnd('100-elements');
// prints 100-elements: 225.438ms

console.timeLog([label][, ...data])

Добавлена в: v10.7.0
  • label <string> По умолчанию: 'default'
  • ...data <any>

Для таймера, запущенного ранее с помощью вызова console.time(), выводит прошедшее время и дополнительные аргументы data в stdout.

console.time('process');
const value = expensiveProcess1(); // Returns 42
console.timeLog('process', value);
// Prints "process: 365.227ms 42".
doExpensiveProcess2(value);
console.timeEnd('process');

console.trace([message][, ...args])

Добавлена в: v0.1.104
  • message <any>
  • ...args <any>

Выводит в stderr строку 'Trace: ', а затем отформатированное сообщение util.format() и трассировку стека до текущей позиции в коде.

console.trace('Show me');
// Prints: (stack trace will vary based on where trace is called)
//  Trace: Show me
//    at repl:2:9
//    at REPLServer.defaultEval (repl.js:248:27)
//    at bound (domain.js:287:14)
//    at REPLServer.runBound [as eval] (domain.js:300:12)
//    at REPLServer.<anonymous> (repl.js:412:12)
//    at emitOne (events.js:82:20)
//    at REPLServer.emit (events.js:169:7)
//    at REPLServer.Interface._onLine (readline.js:210:10)
//    at REPLServer.Interface._line (readline.js:549:8)
//    at REPLServer.Interface._ttyWrite (readline.js:826:14)

console.warn([data][, ...args])

Добавлена в: v0.1.100
  • data <any>
  • ...args <any>

Функция console.warn() — псевдоним для console.error().

Методы, доступные только для инспектора

Следующие методы предоставляются движком V8 в общем API, но ничего не отображают, если не используются вместе с флагом инспектора (--inspect).

console.profile([label])

Добавлена в: v8.0.0
  • label <string>

Этот метод ничего не отображает, если не используется в инспекторе. Метод console.profile() запускает профилирование процессора JavaScript с необязательной меткой до тех пор, пока не будет вызван console.profileEnd(). Профили добавляются в панель Профили инспектора.

console.profile('MyLabel');
// Some code
console.profileEnd('MyLabel');
// Adds the profile 'MyLabel' to the Profiles panel of the inspector.

console.profileEnd([label])

Добавлена в: v8.0.0
  • label <string>

Этот метод ничего не отображает, если не используется в инспекторе. Останавливает текущую сессию профилирования процессора JavaScript, если она запущена, и выводит отчет на панель Профили инспектора. Пример см. в console.profile().

Если этот метод вызывается без метки, останавливается последний запущенный профиль.

console.timeStamp([label])

Добавлена в: v8.0.0
  • label <string>

Этот метод ничего не отображает, если не используется в инспекторе. Метод console.timeStamp() добавляет событие с меткой 'label' на панель Временная шкала инспектора.

© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v12.x/docs/api/console.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API