【问题标题】:Winston log to file not working温斯顿日志到文件不起作用
【发布时间】:2023-03-11 19:00:01
【问题描述】:

我使用 Winston 进行日志记录:

var winston = require('winston');
var logger = new(winston.Logger)({
    transports: [
        new(winston.transports.Console)(),
        new(winston.transports.File)({filename: '/var/log/logF.log'})
    ]
});

我写到这个日志:

logger.log("File: " + path + " was found");

由于某种原因,文件/var/log/logF.log 没有更新,标准输出也没有显示在日志中。

如何使用它,以便将日志写入'/var/log/logF.log'?

【问题讨论】:

    标签: node.js logging winston


    【解决方案1】:

    您没有指定日志“级别”,很遗憾,“日志”不是默认级别。 试试:

    logger.log("info", "File: was found");
    // or
    logger.info("File: was found");
    

    【讨论】:

    • 如何将日志设置为.log 级别?
    • @OrSmith 我认为没有“日志”级别。您必须使用one of these pre-defined ones. 或者您可以使用define your own,但我认为您也不能手动将级别定义为“日志”,因为它会破坏默认的.log() 函数并且它不起作用。
    • 我对此不是完全 100% 确定,我只记得遇到了这个确切的问题并感到沮丧,最终根本没有覆盖“日志”级别。随意尝试,但我只会使用“信息”或其他级别。
    • 日志级别是区分严重性的。每 (rfc5424|tools.ietf.org/html/rfc5424) 没有日志级别。想一想:“日志”级别是什么意思?它表明严重程度如何?
    【解决方案2】:

    在尝试使用多种高级日志记录机制(包括winston、bunyan、log4js)进行多次测试后,如果您执行干净退出process.exit(0),记录器似乎无法写入文件。 删除干净的出口为我解决了这个问题。

    【讨论】:

    • 感谢您的提示,但是当记录器正在写入文件时,我们不能使用 process.exit(0) 干净退出,这很蹩脚。
    【解决方案3】:

    我今天晚上遇到了这个问题。但是,我意识到文件位置没有得到解决。我不确定这是否能解决您的问题。

    filename: path.resolve(__dirname, "add_your_relative_path/error.log")
    

    【讨论】:

      猜你喜欢
      • 2020-07-23
      • 2018-11-19
      • 2014-01-19
      • 1970-01-01
      • 1970-01-01
      • 2015-06-23
      • 1970-01-01
      • 2016-08-02
      • 2018-11-21
      相关资源
      最近更新 更多