2016-09-27 2 views
0

Я новичок в node.js и хочу создать новый файл журнала/отладки в каждый день, чтобы напечатать значение console.log внутри него, потому что, если есть один файл, он становится большим по размеру и не может также правильно отобразиться.Как создать новый журнал каждый день

, пожалуйста, дайте мне предложение, как я могу это сделать?

Любой пример работы оценит меня.

+0

Вы создаете файл журнала вручную или используете какой-либо пакет npm? Можете ли вы поместить код, который вы выполняете? Было бы легко помочь, если мы узнаем, что вы делаете. –

+1

Используйте 'logrotate' или' PM2', диспетчер процессов в узле также помогает с вращением журнала. – activatedgeek

+0

var log_file = fs.createWriteStream ('./ debug' + timeStamp + '.log', { flags: 'w' }); console.log = function (d) {// var dt = new Date(); var utcDate = dt.toUTCString(); log_file.write (utcDate + ":" + util.формат (d) + '\ n'); }; – vicky

ответ

2

Такой элемент любой программы называется «регистратор». Logger может легко обрабатывать ваши файлы журналов.

Есть много реализации для регистрации вашего сервера

Вы можете найти любой регистратор либо npm или github или даже в Google;)

, например, npm install winston

https://github.com/winstonjs/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!'); 
0

Я бы предложил повернуть журнал в зависимости от размера файла журнала, usin g, вы можете сделать это, как указано ниже.

Для этого можно использовать logrotate-stream.

  1. Установить глобально с помощью npm install -g logrotate-stream

  2. Запуск сервера с помощью node app.js 2>&1 | logrotate-stream app.log --keep 5 --size '1m' --compress

Пояснение

2>&1 посыла STDERR на стандартный вывод (detail about 2>&1)

| выходной трубы (здесь потоки вывода) к следующей команде в качестве входных данных (здесь logrotate-stream) имя файла

app.log журнала

--keep 5 максимальное количество файлов, чтобы сохранить

--size 1m максимальный размер каждого файла в мб --compmress компрессионные файлы

Файлы журналов будут выглядеть следующим образом:

app.log 
app.log.0.gz 
app.log.1.gz 
app.log.2.gz 
app.log.3.gz 
app.log.4.gz 
+0

Спасибо, но все еще не удается создать файл журнала для каждого дня. – vicky

+0

Посмотрите на этот ответ http://stackoverflow.com/a/18120926/2277289 –

+0

спасибо всем, но я нашел его по-другому и правильно его работал. – vicky

Смежные вопросы