使用文件名中的日期/时间创建日志文件

时间:2019-03-26 09:04:38

标签: node.js fs

如何在每次启动程序时将日志覆盖到新文件中?这样,文件名的结尾就是文件创建的日期和时间。

var fs  = require('fs');

var ws = fs.createWriteStream('test.log', { 
    'flags'   : 'w',
    'encoding': 'utf8',
    'mode'    : 0666,
});

process.stdout.wr = process.stdout.write;
process.stdout.er = process.stderr.write;

process.stdout.write = function(mes, c) {
    ws.write(mes + '\r\n');
    process.stdout.wr(mes, c)   
};

process.stderr.write = function(mes, c) {
    ws.write(mes + '\r\n');
    process.stdout.er(mes, c)   
};

1 个答案:

答案 0 :(得分:3)

您可以使用以下代码来做到这一点:

const data = new Date();
const timestamp = date.getTime();

var ws = fs.createWriteStream(`test-${timestamp}.log`, { 
    'flags'   : 'w',
    'encoding': 'utf8',
    'mode'    : 0666,
});

日志文件名类似于test-1553591263787.logtest-1553591318028.log ...

如果要使用自定义日期/时间格式,请选中this SO question about formatting