Spa*_*ky1 37 node.js flatiron.js
如何在使用Winston处理node.js的日志记录时旋转日志.也就是说,如何为应用运行的每一天创建一个新文件?
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)(),
new (winston.transports.File)({ filename: '2012-07-09.log' })
]
});
logger.log('info', 'Test Log Message', { anything: 'This is metadata' });
Run Code Online (Sandbox Code Playgroud)
ind*_*ero 25
winston作者和维护者在这里.
每天登录到新文件目前是一个开放的功能请求:https://github.com/flatiron/winston/issues/10.很想看到有人实现它.
也就是说,还有其他选择:
File传输接受maxsize选项,当日志文件超过特定大小(以字节为单位)时,该选项将旋转日志文件.
还有一个带有新传输的开放式拉动请求我没有机会真正深入研究"fileRotate",这似乎是基于日期的轮换:https://github.com/flatiron/winston /拉/ 120 /文件
小智 24
该功能已存在,我们正在生产中使用它,winston.transports.DailyRotateFile:
var timeFormatFn = function() {
'use strict';
return moment().format(cfg.timeFormat);
};
var logger = new(winston.Logger)({
exitOnError: false,
transports: [
new(winston.transports.DailyRotateFile)({
filename: cfg.appLogName,
dirname: __dirname + '/../' + cfg.logsDirectory,
datePattern: cfg.rollingDatePattern,
timestamp: timeFormatFn
}),
new(winston.transports.Console)({
colorize: true,
timestamp: timeFormatFn
})
]
});
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以使用以下代码每天轮换日志文件:
var winston = require('winston');
require('winston-daily-rotate-file');
var transport = new (winston.transports.DailyRotateFile)({
filename: './log',
datePattern: 'yyyy-MM-dd.',
prepend: true,
level: 'info'
});
var logger = new (winston.createLogger)({
transports: [
transport
]
});
logger.info('Hello World!');
Run Code Online (Sandbox Code Playgroud)