Консоль
Исходный код: lib/console.js
Модуль node:console предоставляет простую консоль отладки, похожую на механизм консоли JavaScript, предоставляемый веб-браузерами.
Модуль экспортирует две конкретные компоненты:
- Класс
Consoleс методами, такими какconsole.log(),console.error(), иconsole.warn(), которые могут использоваться для записи в любой поток Node.js. - Глобальный экземпляр
console, настроенный для записи вprocess.stdoutиprocess.stderr. Глобальныйconsoleможет быть использован без вызоваrequire('node: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 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
Класс Console может быть использован для создания простого логирования с настраиваемыми выходными потоками и может быть вызван с помощью require('node:console').Console или console.Console (или их деструктурированных аналогов):
const { Console } = require('node:console'); copy const { Console } = console; copy
new Console(stdout[, stderr][, ignoreErrors])
new Console(options)
-
options<Объект>-
stdout<stream.Writable> -
stderr<stream.Writable> -
ignoreErrors<логическое> Игнорировать ошибки при записи в базовые потоки. По умолчанию:true. -
colorMode<логическое> | <строка> Включить поддержку цвета для этого экземпляра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 copy Глобальный console — специальный Console, чьей вывод отправляется в process.stdout и process.stderr. Он эквивалентен вызову:
new Console({ stdout: process.stdout, stderr: process.stderr }); copy
console.assert(value[, ...message])
-
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 copy
console.clear()
Когда stdout является TTY, вызов console.clear() попытается очистить TTY. Когда stdout не является TTY, этот метод ничего не делает.
Конкретная операция console.clear() может различаться в зависимости от операционной системы и типа терминала. Для большинства операционных систем Linux console.clear() работает аналогично команде clear командной оболочки. В Windows console.clear() очистит только вывод в текущем окне терминала для исполняемого файла Node.js.
console.count([label])
-
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
> copy
console.countReset([label])
-
label<строка> Метка отображения счётчика. По умолчанию:'default'.
Сбрасывает внутренний счётчик, специфичный для label.
> console.count('abc');
abc: 1
undefined
> console.countReset('abc');
undefined
> console.count('abc');
abc: 1
undefined
> copy
console.debug(data[, ...args])
Функция console.debug() является псевдонимом для console.log().
console.dir(obj[, options])
-
obj<любое> -
options<Объект>-
showHidden<логическое> Еслиtrue, то неперечисляемые и символьные свойства объекта также будут отображены. По умолчанию:false. -
depth<число> Указываетutil.inspect()на количество рекурсий при форматировании объекта. Это полезно для проверки больших и сложных объектов. Для бесконечной рекурсии передайтеnull. По умолчанию:2. -
colors<логическое> Еслиtrue, то вывод будет стилизован с помощью ANSI-кодов цвета. Цвета настраиваются; см. настройкаutil.inspect()цветов. По умолчанию:false.
-
Использует util.inspect() для obj и выводит полученную строку в stdout. Эта функция опускает любую пользовательскую функцию inspect() определённую в obj.
console.dirxml(...data)
-
...data<любое>
Этот метод вызывает console.log(), передавая ему полученные аргументы. Этот метод не производит форматирования XML.
console.error([data][, ...args])
Выводит в 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])
-
...label<любое>
Увеличивает отступ последующих строк на groupIndentation пробелов.
Если предоставлено одно или несколько label значений, они выводятся первыми без дополнительного отступа.
console.groupCollapsed()
Псевдоним для console.group().
console.groupEnd()
Уменьшает отступ последующих строк на пробелы на groupIndentation символов.
console.info([data][, ...args])
Функция console.info() является псевдонимом для console.log().
console.log([data][, ...args])
Выводит в 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])
-
tabularData<любой> -
properties<массив строк> Дополнительные свойства для построения таблицы.
Попытаться создать таблицу с колонками свойств 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])
-
label<строка> По умолчанию:'default'
Инициализирует таймер, который можно использовать для вычисления продолжительности операции. Таймеры идентифицируются уникальным label. Используйте тот же label при вызове console.timeEnd() для остановки таймера и вывода затраченного времени в соответствующих единицах измерения в stdout. Например, если затраченное время составляет 3869мс, console.timeEnd() отображает "3.869с".
console.timeEnd([label])
-
label<строка> По умолчанию:'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])
Для таймера, ранее запущенного вызовом 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])
Выводит в 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])
Функция console.warn() является псевдонимом для console.error().
Только для инспектора методы
Следующие методы предоставляются движком V8 в общем API, но ничего не отображают, если не используются совместно с инспектором (--inspect флаг).
console.profile([label])
-
label<строка>
Этот метод ничего не отображает, если не используется в инспекторе. Метод console.profile() запускает профиль CPU JavaScript с необязательной меткой до тех пор, пока не будет вызван console.profileEnd(). Профиль добавляется в панель Профили инспектора.
console.profile('MyLabel');
// Some code
console.profileEnd('MyLabel');
// Adds the profile 'MyLabel' to the Profiles panel of the inspector. copy
console.profileEnd([label])
-
label<строка>
Этот метод ничего не отображает, если не используется в инспекторе. Останавливает текущую сессию профилирования CPU JavaScript, если она была запущена, и выводит отчёт на панель Профили инспектора. См. console.profile() для примера.
Если этот метод вызывается без метки, останавливается наиболее недавно запущенный профиль.
console.timeStamp([label])
-
label<строка>
Этот метод ничего не отображает, если не используется в инспекторе. Метод 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/api/console.html