簡體   English   中英

使用Node.js的Winston模塊正確記錄到文件

[英]Correct logging to file using Node.js's Winston module

我正在使用Winston將日志記錄到控制台和文件中。 如果我指定了格式化程序,並且記錄的消息與上一個相同,則文件日志僅寫入一次。 在其他情況下(未指定格式化程序或未寫入控制台),日志記錄將按預期工作。

這是簡化的代碼:

var winston = require('winston');

function formatter(args) {
    return "some formatting: " + args.message;
}

var weirdLogger = new (winston.Logger)({
    transports: [
        new (winston.transports.Console)({
            json: false,
            formatter: formatter
        }),
        new (winston.transports.File)({
            filename: "weirdLogger.csv",
            json: false,
            formatter: formatter
        })
    ]
});

var workingLogger = new (winston.Logger)({
    transports: [
        new (winston.transports.Console)({
            json: false
        }),
        new (winston.transports.File)({
            filename: "workingLogger.csv",
            json: false
        })
    ]
});

var weirdLogTest = function () {
    weirdLogger.info("test1");
    workingLogger.info("test2");
};

var expectedBehaviorLogTest = function () {
    weirdLogger.info("test1: " + new Date().getTime());
    workingLogger.info("test2: " + new Date().getTime());
};

setInterval(weirdLogTest, 5000);
//setInterval(expectedBehaviorLogTest, 5000);

如所寫,此代碼顯示test1和test2每五秒鍾記錄一次到控制台,而workingLogger.csv被更新,但是weirdLogger.csv不是。 注釋掉setInterval(weirdLogTest, 5000); 並在ExpectedBehavior測試中添加注釋會顯示,將日期附加到每個日志后,日志記錄將按預期進行。

我一直無法在文檔中找到任何有關忽略重復消息或其他可以解釋此問題的信息。 關於我做錯了什么的任何想法? 這可能是一個錯誤,但我不想排除用戶錯誤。

確認這是一個不是由格式化程序引起的錯誤 ,而是因為我的格式化日志輸出太短了。 有一個將被合並的修復程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM