项目开发中,不论是处于调试目的,还是日志留存目的,我们经常都会用到console.log()方法输出调试信息,有时候为了分析过程数据,我们希望能把这些调试信息留存下来,保存到指定的文件里去,怎么办呢?这里介绍一个简单的方法:
var logPath = 'D:/project/log/'
var logFile = null;
console.log = function () {
var time = tools.dateFormat(new Date(), 'yyyy-MM-dd_HH:mm:ss');
var foldName = time.substr(0, 13);
if (logTime != foldName) {
logTime = foldName;
var fname = logPath + foldName + '.log';
if (logFile) {
logFile.end();
}
// if (!fs.existsSync(fname)) {
// fs.mkdirSync(fname);
// }
logFile = fs.createWriteStream(fname, {
flags: 'a',
encoding: 'utf8'
})
}
logFile.write('【' + time + '】' + arguments[0] + '\r\n')
}
就是上面这个代码了,把这个代码放到任意一个启动时就能加载的代码里,或是单独存为一个文件,启动时加载一下就行了。
通过重定义console.log(),轻松实现目标。
本方法里是按小时分日志文件,实际使用时,大家可以根据业务情况灵活安排