首页 > 解决方案 > 写入文件而不用 fs 覆盖

问题描述

我想要一个记录器用于我的项目。每次我调用 myConsole.log 它都会覆盖现有的日志。我能做什么,它只是写在下一行而不是删除所有内容

const fs = require('fs');
const myConsole = new console.Console(fs.createWriteStream('./output.log'));
myConsole.log(var)
myConsole.log(var2)
myConsole.log(var3)

标签: javascriptnode.jsfs

解决方案


我建议看一下Winston,这是一个可以很好地记录日志的软件包。

但是对于您的代码,您需要将a(append) 标志添加到您的 fs 编写器,以便它正确写入而不是覆盖(默认标志是w),如下所示:

const myConsole = new console.Console(fs.createWriteStream('./output.log', { flags: 'a' }));

请参阅有关createwritestream系统标志的文档。


推荐阅读