войти в конкретную консоль с console.log

1

Как вы определяете из любого места в выражении, из которого связано логика?

Я использую Express и делаю много логики в своем коде. Чтобы пользователь знал, что происходит, я использую консольный журнал практически везде. Таким образом, если логика запускается по командной строке, она просто печатает на консоль, и если логика проходит через экспресс-маршрут, я переопределяю консоль следующим образом:

console.log = (print) => {
    res.write(print + '<br>')
};

Довольно просто, но когда два запускаются одновременно, самый новый один забирает функцию журнала консоли, поэтому он начинает печатать журналы консоли из обоих процессов. Любое предложение о том, как это должно выполняться Без передачи специальной функции печати ко всем моим функциям в качестве параметра?

Может быть, использовать глобальный объект печати, который определяет, в каком узле он запускался, и только печатать утверждения, которые поступают из этого источника, но тогда как бы вы закрыли соединение?

  • 0
    Вы не можете обновить глобальное свойство, такое как console.log и ожидать только локальное приложение. Как вы контролируете область применения ваших изменений?
  • 0
    Это то, что мне интересно. Любая вещь возможна в программировании, просто нужно понять это. Я думал, может быть, добавить случайную переменную в качестве атрибута переменной процесса, и передать это в журнал консоли, чтобы контролировать область?
Теги:
console.log

1 ответ

0

Использовать модуль npm winston https://www.npmjs.com/package/winston

var winston = require('winston');

  winston.log('info', 'Hello distributed log files!');
  winston.info('Hello again distributed logs');

  winston.level = 'debug';
  winston.log('debug', 'Now my debug messages are written to console!');

И предоставить некоторые транспортные средства https://github.com/winstonjs/winston/blob/master/docs/transports.md

  • 0
    может быть, это в сочетании с: Winston-Express-Middleware может работать

Ещё вопросы

Сообщество Overcoder
Наверх
Меню