【问题标题】:NodeJS - WinstonJS - Clear the log fileNodeJS - WinstonJS - 清除日志文件
【发布时间】:2016-03-22 20:56:20
【问题描述】:

我正在使用 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 的东西会好得多,但我看不到类似的东西。

有什么方法可以清除日志文件,所以我只有最后一次运行代码的日志条目..?

【问题讨论】:

标签: node.js nodemon


【解决方案1】:

{ flags: 'w' }

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多