繁体   English   中英

如何在 Node.JS 上将日志写入控制台和文件?

[英]How to write log to console and file on Node.JS?

我想要如何同时记录到文件和控制台。 这是我的代码片段:

我想让记录到控制台和记录到文件成为可能。 下面的代码有效,但是有什么办法可以做到我刚才提到的吗?

var fs = require("fs");
var Logger = (exports.Logger = {});
var infoStream = fs.createWriteStream("logs/info.txt");
var errorStream = fs.createWriteStream("logs/error.txt");
var debugStream = fs.createWriteStream("logs/debug.txt");

Logger.info = function(msg) {
  var message = new Date().toISOString() + " : " + msg + "\n";
  infoStream.write(message);
};

Logger.debug = function(msg) {
  var message = new Date().toISOString() + " : " + msg + "\n";
  debugStream.write(message);
};

Logger.error = function(msg) {
  var message = new Date().toISOString() + " : " + msg + "\n";
  errorStream.write(message);
};

我会用winston

您可以使用不同的选项创建不同的传输。

export const Logger = winston.createLogger({
  transports: [
    new winston.transports.Console({ silent: process.env.NODE_ENV == "test" }),
    new winston.transports.File({ filename: "log/error.log" }),
  ],
})

例如,如果您为 debug/info/error 创建传输并将其与silent选项结合使用,那么只有想要的文件 go 到日志,还有一个level配置键,但它会过滤掉低于该级别的错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM