【发布时间】:2016-06-15 11:49:26
【问题描述】:
我是 Node JS 的新手。我一直在寻找 Node 的日志库,然后我找到了 Winston。现在,我想在日志文件达到一定大小并在名称中包含时间戳后归档它们。
例如:
当前日志文件:logs/devlog.log(10 MB)
因为它达到了 10 MB,我想存档它
归档日志文件:Archive/devlog-03.02.2016.log
请帮助我在温斯顿或任何其他解决方案中做到这一点。提前致谢
我的 app.js(节点服务器)代码:
console.log('Hello world');
var winston = require('winston');
var date1 = new Date();
winston.emitErrs = true;
var date = new Date();
var loggerName = "server.app.js";
var winston = require('winston'),
path = require('path'),
transports = [];
transports.push(new winston.transports.DailyRotateFile({
name: 'file',
datePattern: '.yyyy-MM-ddTHH-mm',
filename: path.join(__dirname, "logs", "log_file.log"),
maxFiles: 5,
maxsize: 100000000
}));
var logger = new winston.Logger({ transports: transports });
//winston.loggers.add('ServerLogger', {
// transports: [
// new (winston.transports.File)({
// name: 'Devlogger', //Name of the transport
// filename: 'logs/devlogNormalF.log', // log file name
// json: false,
// maxsize: 1048576, //1MB
// maxFiles: 10, // 10 Files max
// timestamp: function () {
// return new Date().toISOString();//.substring(0,23);
// }
// }
// ), new archiveFile(options)
// ]
//});
//var logger = winston.loggers.get('ServerLogger');
logger.info ('Logger Name: '+loggerName+' App starting...');
logger.info('Logger Name: ' + loggerName + 'Hello world');
logger.info('Logger Name: ' + loggerName + ' Accessing test/user');
logger.error('Logger Name: ' + loggerName + ' Cannot access test/user/user.png');
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
var date2 = new Date();
var diff = date2 - date1;
logger.info('Start '+ date1+' Stop '+date2)
logger.info('Logger Name: ' + loggerName + ' Response time of Node is ' + diff+' ms');
});
app.listen(3000, function () {
logger.warn('Logger Name: ' + loggerName + ' Example app listening on port 3000!');
logger.info('Logger Name: ' + loggerName + ' App ending...');
});
【问题讨论】:
标签: node.js express logging archive winston