Spec-Zone.ru › Node.js 24 LTS

Консоль

Стабильность: 2 - Стабильный

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

Модуль node:console предоставляет простую консоль для отладки, похожую на механизм консоли JavaScript, используемый в веб-браузерах.

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

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

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

Пример использования глобального объекта 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 message and stack trace to stderr:
//   Error: Whoops, something bad happened
//     at [eval]:5:15
//     at Script.runInThisContext (node:vm:132:18)
//     at Object.runInThisContext (node:vm:309:38)
//     at node:internal/process/execution:77:19
//     at [eval]-wrapper:6:22
//     at evalScript (node:internal/process/execution:76:60)
//     at node:internal/main/eval_string:23:3

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

Пример использования класса 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 copy

Класс: Console

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

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

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

Модули JavaScript
import { Console } from 'node:console';
CommonJS
const { Console } = require('node:console');
const { Console } = console; copy

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

new Console(options)

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

Параметр inspectOptions может быть объектом Map из stream в options.

v14.2.0, v12.17.0

Добавлен параметр groupIndentation.

v11.7.0

Добавлен параметр inspectOptions.

v10.0.0

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

v8.0.0

Добавлен параметр ignoreErrors.

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

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

Модули JavaScript
import { createWriteStream } from 'node:fs';
import { Console } from 'node:console';
// Alternatively
// const { Console } = console;

const output = createWriteStream('./stdout.log');
const errorOutput = 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
CommonJS
const fs = require('node:fs');
const { Console } = require('node:console');
// Alternatively
// const { Console } = console;

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 }); copy

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

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

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

v0.1.101

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

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

Если value имеет значение ложного типа или не указан, console.assert() выводит сообщение. Он только выводит сообщение и никак иначе не влияет на выполнение. Вывод всегда начинается с "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 copy

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 <string> Метка счетчика, отображаемая на экране. По умолчанию: '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
> copy

console.countReset([label])

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

Сбрасывает внутренний счетчик, связанный с label.

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

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

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

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

v8.0.0

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

  • data <any>
  • ...args <any>

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

console.dir(obj[, options])

Добавлено в: v0.1.101
  • obj <any>
  • options <Object>
    • showHidden <boolean> Если true имеет значение true, будут также показаны не перечисляемые свойства объекта и свойства-символы. По умолчанию: false.
    • depth <number> Указывает util.inspect(), сколько раз рекурсивно обходить объект при форматировании. Это полезно для просмотра больших сложных объектов. Чтобы рекурсия была бесконечной, передайте null. По умолчанию: 2.
    • colors <boolean> Если true имеет значение 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 <any>

Этот метод вызывает 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 copy

Если в первой строке не найдены элементы форматирования (например, %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 copy

Дополнительные сведения см. в разделе 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' │
// └─────────┴─────┘ copy

console.time([label])

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

Запускает таймер для измерения продолжительности операции. Таймеры идентифицируются по уникальному label. При вызове console.timeEnd() укажите тот же label, чтобы остановить таймер и вывести в stdout прошедшее время в подходящих единицах. Например, если прошло 3869 мс, console.timeEnd() выводит «3.869s».

console.timeEnd([label])

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

Прошедшее время отображается в подходящих единицах измерения времени.

v6.0.0

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

v0.1.104

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

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

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

console.time('bunch-of-stuff');
// Do a bunch of stuff.
console.timeEnd('bunch-of-stuff');
// Prints: bunch-of-stuff: 225.438ms copy

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'); copy

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) copy

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

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

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

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

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

console.profile([label])

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

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

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

console.profileEnd([label])

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

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

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

console.timeStamp([label])

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

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

© 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-v24.x/docs/api/console.html

Spec-Zone.ru

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