Winston регистрируется в консоли, но не в лог-файлах - PullRequest
0 голосов
/ 20 декабря 2018

Я использую Winston для входа в свой проект.Я вижу журналы в консоли, но в файлах журналов регистрации нет.

Файл Winston.js

var appRoot = require('app-root-path');
var winston = require('winston');
const {transports, createLogger, format} = require('winston');
winston.addColors( winston.config.npm.colors );

const logger = winston.createLogger({
level: 'info',
format: format.combine(
    format.timestamp({format:'MM-YY-DD hh:mm:ss a'}),
    format.json(),

),
transports: [
  new winston.transports.File({ filename: './logs/error.log', level: 'error' }),
  new winston.transports.File({  handleExceptions: true,colorize:true,
    json: true,filename: './logs/app.log',
})
]
  });
if (process.env.NODE_ENV !== 'production') {
logger.add(new winston.transports.Console({
  format: winston.format.simple()
}));
  }
module.exports = logger;

Код Server.js

var morgan = require('morgan');
var winston = require('./server/config/winston');

Узел версии 8.11.3

Winston версии 3.1.0

1 Ответ

0 голосов
/ 20 декабря 2018

Вы должны убедиться, что папка 'logs' существует.Winston не заботится ни о несуществующей папке, ни о каких-либо предупреждениях или ошибках.

Вы можете поместить следующий код в ваш server.js

var fs = require( 'fs' );
var logDir = 'logs';
if ( !fs.existsSync( logDir ) ) {
   fs.mkdirSync( logDir );
}
winston.info('Hey NODE');

Используя абсолютный путь к папке внутри winston.js решил проблему.

...