簡體   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