Консоль¶
Стабильность: 2 – Стабильная
API является удовлетворительным. Совместимость с npm имеет высший приоритет и не будет нарушена, кроме случаев явной необходимости.
Модуль node:console предоставляет простую отладочную консоль, похожую на механизм console в браузерах.
Модуль экспортирует два основных элемента:
- Класс
Consoleс методами вродеconsole.log(),console.error()иconsole.warn()для записи в любой поток Node.js. - Глобальный объект
console, настроенный на запись вprocess.stdoutиprocess.stderr. Глобальныйconsoleможно использовать безrequire('node:console').
Предупреждение: методы глобального console не являются ни последовательно синхронными, как похожие API в браузере, ни последовательно асинхронными, как остальные потоки Node.js. Если поведение важно, сначала выясните, синхронный или асинхронный поток под капотом: это зависит от платформы и настройки стандартных потоков процесса. См. заметку о вводе-выводе процесса.
Пример с глобальным console:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
Пример с классом Console:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Класс: Console¶
Класс Console служит для создания простого логгера с настраиваемыми потоками вывода. Доступ: require('node:console').Console или console.Console (или деструктуризация):
1 | |
1 | |
1 | |
new Console(stdout[, stderr][, ignoreErrors])¶
new Console(options)¶
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 не задан, для ошибок используется stdout.
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 6 7 8 9 10 11 | |
Глобальный console — особый Console, вывод идёт в process.stdout и process.stderr. Эквивалентно:
1 2 3 4 | |
console.assert(value[, ...message])¶
value<any>Проверяемое значение на истинность....message<any>Остальные аргументы — текст сообщения.
console.assert() выводит сообщение, если value ложно или не передано. Выполнение не прерывается. Вывод всегда начинается с "Assertion failed". Если передан message, он форматируется через util.format().
Если value истинно, ничего не происходит.
1 2 3 4 5 6 7 | |
console.clear()¶
Если stdout — TTY, console.clear() пытается очистить TTY. Если stdout не TTY, метод ничего не делает.
Поведение зависит от ОС и типа терминала. В большинстве Linux это похоже на команду clear. В Windows очищается только вывод в текущей области просмотра терминала для процесса node.
console.count([label])¶
label<string>Подпись счётчика. По умолчанию:'default'.
Ведёт внутренний счётчик для label и выводит в stdout, сколько раз console.count() вызывали с этим label.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
console.countReset([label])¶
label<string>Подпись счётчика. По умолчанию:'default'.
Сбрасывает внутренний счётчик для label.
1 2 3 4 5 6 7 8 9 | |
console.debug(data[, ...args])¶
console.debug() — псевдоним console.log().
console.dir(obj[, options])¶
obj<any>options<Object>showHidden<boolean>Еслиtrue, показываются ненумеруемые и символьные свойства. По умолчанию:false.depth<number>Глубина рекурсии дляutil.inspect()при форматировании. Для бесконечной глубины передайтеnull. По умолчанию:2.colors<boolean>Еслиtrue, вывод с ANSI-цветами. Настройка цветов — см. настройку цветовutil.inspect(). По умолчанию:false.
Вызывает util.inspect() для obj и пишет строку в stdout. Пользовательская функция inspect() на obj обходится.
console.dirxml(...data)¶
...data<any>
Вызывает console.log() с теми же аргументами. XML-форматирования не производится.
console.error([data][, ...args])¶
Пишет в stderr с переводом строки. Можно передать несколько аргументов: первый — основное сообщение, остальные — подстановки в стиле printf(3) (все аргументы передаются в util.format()).
1 2 3 4 5 | |
Если в первой строке нет спецификаторов вроде %d, для каждого аргумента вызывается util.inspect(), строки склеиваются. Подробнее — util.format().
console.group([...label])¶
...label<any>
Увеличивает отступ последующих строк на 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()).
1 2 3 4 5 | |
См. util.format().
console.table(tabularData[, properties])¶
tabularData<any>properties<string[]>Альтернативный набор свойств для столбцов.
Пытается построить таблицу: столбцы из свойств tabularData (или из properties), строки — элементы tabularData, и вывести её. Если данные не удаётся разобрать как табличные, логируется аргумент как есть.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
console.time([label])¶
label<string>По умолчанию:'default'
Запускает таймер для измерения длительности операции. Таймеры различаются по label. Используйте тот же label в console.timeEnd(), чтобы остановить таймер и вывести прошедшее время в подходящих единицах в stdout. Например, при 3869 мс console.timeEnd() покажет "3.869s".
console.timeEnd([label])¶
label<string>По умолчанию:'default'
Останавливает таймер, запущенный console.time(), и выводит результат в stdout:
1 2 3 4 | |
console.timeLog([label][, ...data])¶
Для таймера, запущенного console.time(), выводит прошедшее время и остальные аргументы data в stdout:
1 2 3 4 5 6 | |
console.trace([message][, ...args])¶
Пишет в stderr строку 'Trace: ', затем сообщение, отформатированное util.format(), и стек до текущего места в коде.
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
console.warn([data][, ...args])¶
console.warn() — псевдоним console.error().
Методы только для инспектора¶
Следующие методы предоставляет движок V8 в общем API, но ничего не выводят, если не используются вместе с инспектором (флаг --inspect).
console.profile([label])¶
label<string>
Вне инспектора ничего не отображает. console.profile() начинает CPU-профиль JavaScript с необязательной меткой до вызова console.profileEnd(). Профиль затем попадает на панель Profile инспектора.
1 2 3 4 | |
console.profileEnd([label])¶
label<string>
Вне инспектора ничего не отображает. Останавливает текущую сессию CPU-профилирования, если она была начата, и выводит отчёт на панель Profiles. Пример — см. console.profile().
Без метки останавливается последний запущенный профиль.
console.timeStamp([label])¶
label<string>
Вне инспектора ничего не отображает. console.timeStamp() добавляет событие с меткой на панель Timeline инспектора.