Консоль
Исходный код: 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
Класс Console может быть использован для создания простого регистратора с настраиваемыми потоками вывода, к которому можно обратиться, используя либо require('console').Console или console.Console (или их деструктурированные аналоги):
const { Console } = require('console'); const { Console } = console; new Console(stdout[, stderr][, ignoreErrors])
new Console(options)
-
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])
-
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()
Когда 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
> console.countReset([label])
-
label<строка> Метка отображения для счётчика. По умолчанию:'default'.
Сбрасывает внутренний счётчик, специфичный для label.
> console.count('abc');
abc: 1
undefined
> console.countReset('abc');
undefined
> console.count('abc');
abc: 1
undefined
> console.debug(data[, ...args])
Функция console.debug() является псевдонимом для console.log().
console.dir(obj[, options])
-
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)
-
...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 Если элементы форматирования (например, %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()).
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])
-
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])
-
label<string> По умолчанию:'default'
Запускает таймер, который можно использовать для вычисления продолжительности операции. Таймеры идентифицируются уникальным label. Используйте тот же label, что и при вызове console.timeEnd(), чтобы остановить таймер и вывести время в миллисекундах в stdout. Время работы таймеров точно до миллисекунд.
console.timeEnd([label])
-
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])
Для таймера, запущенного ранее с помощью вызова 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])
Выводит в 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])
Функция console.warn() — псевдоним для console.error().
Методы, доступные только для инспектора
Следующие методы предоставляются движком V8 в общем API, но ничего не отображают, если не используются вместе с флагом инспектора (--inspect).
console.profile([label])
-
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])
-
label<string>
Этот метод ничего не отображает, если не используется в инспекторе. Останавливает текущую сессию профилирования процессора JavaScript, если она запущена, и выводит отчет на панель Профили инспектора. Пример см. в console.profile().
Если этот метод вызывается без метки, останавливается последний запущенный профиль.
console.timeStamp([label])
-
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