温斯顿日志到文件不起作用
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")
【讨论】:
以上是关于温斯顿日志到文件不起作用的主要内容,如果未能解决你的问题,请参考以下文章