我可以配置console.log
为将日志写在文件上而不是在控制台上打印吗?
节点:登录文件而不是控制台
第3437篇《节点:登录文件而不是控制台》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点
共5个回答
如果这是针对应用程序的,那么最好使用日志记录模块。它会为您提供更大的灵活性。一些建议。
const fs = require("fs");
const {keys} = Object;
const {Console} = console;
/**
* Redirect console to a file. Call without path or with false-y
* value to restore original behavior.
* @param {string} [path]
*/
function file(path) {
const con = path ? new Console(fs.createWriteStream(path)) : null;
keys(Console.prototype).forEach(key => {
if (path) {
this[key] = (...args) => con[key](...args);
} else {
delete this[key];
}
});
};
// patch global console object and export
module.exports = console.file = file;
要使用它,请执行以下操作:
require("./console-file");
console.file("/path/to.log");
console.log("write to file!");
console.error("also write to file!");
console.file(); // go back to writing to stdout
如果您正在生产中寻找某些东西,温斯顿可能是最佳选择。
如果您只是想快速完成开发工作,请直接输出到文件中(我认为这仅适用于* nix系统):
nohup node simple-server.js > output.log &
相似问题
问题类别
我只是构建了一个包来执行此操作,希望您喜欢它;) https://www.npmjs.com/package/writelog