Spec-Zone.ru › Node.js 6 LTS

Консоль

Уровень стабильности: 2 - Стабильно

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

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

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

Предупреждение: Методы глобального объекта 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').Console;
const Console = console.Console;

new Console(stdout[, stderr])

Создаёт новый 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(output, 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(process.stdout, process.stderr);

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

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

Простой тест утверждения, проверяющий, является ли value истинным значением. Если нет, выбрасывается AssertionError. Если предоставлено, сообщение об ошибке message форматируется с помощью util.format() и используется в качестве сообщения об ошибке.

console.assert(true, 'does nothing');
// OK
console.assert(false, 'Whoops %s', 'didn\'t work');
// AssertionError: Whoops didn't work

Примечание: метод console.assert() реализован в Node.js по-другому, чем метод console.assert() доступный в браузерах.

Конкретно, в браузерах вызов console.assert() с ложным утверждением приведет к выводу message в консоль без прерывания выполнения последующего кода. В Node.js, однако, ложное утверждение вызовет исключение AssertionError.

Функциональность, приближающаяся к реализации в браузерах, может быть реализована путем расширения console Node.js и переопределения метода console.assert().

В следующем примере создаётся модуль, который расширяет и переопределяет поведение по умолчанию console в Node.js.

'use strict';

// Creates a simple extension of console with a
// new impl for assert without monkey-patching.
const myConsole = Object.create(console, {
  assert: {
    value(assertion, message, ...args) {
      try {
        console.assert(assertion, message, ...args);
      } catch (err) {
        console.error(err.stack);
      }
    },
    configurable: true,
    enumerable: true,
    writable: true,
  },
});

module.exports = myConsole;

Затем это можно использовать как непосредственную замену встроенной консоли:

const console = require('./myConsole');
console.assert(false, 'this message will print, but no error thrown');
console.log('this will also print');

console.clear()

Добавлен в: v6.13.0

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

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

console.count([label])

Добавлен в: v6.13.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 = 'default'])

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

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

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

console.dir(obj[, options])

Добавлен в: v0.1.101
  • obj <любое>
  • options <Объект>
    • showHidden <логическое>
    • depth <число>
    • colors <логическое>

Использует util.inspect() для obj и выводит полученную строку в stdout. Эта функция опускает любую пользовательскую функцию inspect() , определённую в obj . Опциональный объект options может быть передан для изменения определённых аспектов форматированной строки:

  • showHidden - если true , то неперечисляемые и символьные свойства объекта также будут показаны. По умолчанию false.

  • depth - сообщает util.inspect() о том, сколько раз рекурсировать при форматировании объекта. Это полезно для проверки больших сложных объектов. По умолчанию 2. Чтобы сделать рекурсию бесконечной, передайте null.

  • colors - если true, то вывод будет стилизован с помощью ANSI-кодов цветов. По умолчанию false. Цвета настраиваются; см. настройка цветов util.inspect().

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

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

Выводит в 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.info([data][, ...args])

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

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

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

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

Выводит в 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.time(label)

Добавлен в: v0.1.104
  • label <строка>

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

console.timeEnd(label)

Добавлен в: v0.1.104
  • label <строка>

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

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

Примечание: начиная с Node.js v6.0.0, console.timeEnd() удаляет таймер, чтобы избежать утечки. В более старых версиях таймер сохранялся. Это позволяло вызывать console.timeEnd() несколько раз для одной и той же метки. Эта функция была непреднамеренной и больше не поддерживается.

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

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

Выводит в 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

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

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

Spec-Zone.ru

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