温斯顿日志到文件不起作用

Posted

技术标签:

【中文标题】温斯顿日志到文件不起作用【英文标题】:Winston log to file not working 【发布时间】:2015-03-06 12:32:34 【问题描述】:

我使用 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'?

【问题讨论】:

【参考方案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")

【讨论】:

以上是关于温斯顿日志到文件不起作用的主要内容,如果未能解决你的问题,请参考以下文章

将特定日志从systemd服务重定向到单独的文件不起作用

复制文件不起作用

欢迎内容中日志文件的 Jboss EAP 7 符号链接不起作用

PhoneGap读写文件不起作用

Nlog 动态文件名归档不起作用

SpringBoot学习遇到的问题 - 配置文件有日志的debug模式等配置项,为什么不起作用