NodeJS - WinstonJS - 清除日志文件

时间:2015-12-16 16:10:28

标签: 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');

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

我想我可以使用fs模块做一些事情,但使用Winston说update: replace|append这样的东西要好得多,但我看不到那些可用的东西。

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

2 个答案:

答案 0 :(得分:1)

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

// Open the file in "write" mode, which truncates first
options: { flags: 'w' },

答案 1 :(得分:0)

{ flags: 'w' }

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

  transports: [
    new winston.transports.File({ filename: 'myLog.txt', options: { flags: 'w' } })
  ]