NodeJS - WinstonJS - 清除日志文件

Ste*_*ast 6 node.js nodemon

我正在使用 WinstonJS 记录到文件,并nodemon在我更新代码时重新启动。

var winston = require('winston');

var logger = new (winston.Logger)({
    transports: [
        new (winston.transports.File)({
            level: 'silly',
            filename: __dirname + '/logs/test.log',
            json: false
        })
    ]
});

logger.log('info', 'something');
Run Code Online (Sandbox Code Playgroud)

日志文件被附加到,但是当我更改代码并保存我的文件时,nodemon再次运行它并再次附加日志文件。这导致日志文件越来越长,我必须不断手动删除内容。

我想我可以用这个fs模块做一些事情,但使用 Winston 说类似的东西会好得多update: replace|append,但我看不到任何可用的东西。

有什么办法可以清除日志文件,所以我只有上次运行代码时的日志条目..?

Mat*_*ttG 11

{ flags: 'w' }
Run Code Online (Sandbox Code Playgroud)

新传输上的选项对象上的属性对我有用:


Cha*_*son 5

我知道这个问题有点过时了,但我最近找到了这个问题的答案,并认为我会在这里分享给后代。您可以将fs.createWriteStream选项传递给File记录器:

// Open the file in "write" mode, which truncates first
options: { flags: 'w' },
Run Code Online (Sandbox Code Playgroud)