javascript - 写入文件而不用 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)
解决方案
我建议看一下Winston,这是一个可以很好地记录日志的软件包。
但是对于您的代码,您需要将a
(append) 标志添加到您的 fs 编写器,以便它正确写入而不是覆盖(默认标志是w
),如下所示:
const myConsole = new console.Console(fs.createWriteStream('./output.log', { flags: 'a' }));
请参阅有关createwritestream和系统标志的文档。
推荐阅读
- jenkins-pipeline - 回归测试 Jenkins 共享库
- batch-file - 批处理文件删除早于的文件;文件名中带有 xxxx* 的文件除外
- vue.js - Vue 向其他组件发送数据是落后了一步
- php - PHP:警告:json_decode() 期望参数 1 是字符串,对象在
- c# - 正则表达式帮助:尝试获取特定字符串后面的数字
- symfony - Symfony:实现来自外部项目的身份验证
- html - 我无法删除字母之间的间距。即使字母间距为 0px,它仍然有太多空间
- python - 通过 python psycopg2 中的列名检索值
- java - Java - 简单的旋转动画
- domain-driven-design - 聚合之间的关联,如何决定是持有对对象的引用还是仅持有其标识