我正在使用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
温斯顿版 3.1.0
答案 0 :(得分:2)
您需要确保“ logs”文件夹存在。 Winston不会处理不存在的文件夹,也不会发出任何警告或错误。
您可以将以下代码放入server.js中
var fs = require( 'fs' );
var logDir = 'logs';
if ( !fs.existsSync( logDir ) ) {
fs.mkdirSync( logDir );
}
winston.info('Hey NODE');
使用winston.js内部的绝对文件夹路径可以解决此问题。