首页 > 解决方案 > Winston 不写入日志文件

问题描述

NodeJS 的 Winston 记录器的简单问题,需要花费大量时间来解决:

const winston = require('winston');

exports.logger = winston.createLogger({
    transports: [
        new winston.transports.File({
            format: winston.format.json(),
            level: 'info',
            timestamp: true,
            maxsize: 512000, // ~ 5 MB
            maxFiles: 10,
            filename: '../logs/info.log'
        }),
        new winston.transports.Console({
            format: winston.format.simple(),
            level: 'info'
        })
    ]
});

有趣的是,如果文件夹存在,它可以在文件夹中创建文件,但如果文件夹不存在,则无法创建文件夹(WTF?)。

问题是永远不会将任何信息保存到文件中。我尝试修改访问权限。没有什么。没有收到任何关于该问题的反馈。

对于文档,我可能太笨了,因为对此没有任何内容,但很多人似乎都面临同样的问题。

标签: javascriptnode.jsloggingwinston

解决方案


好的,我刚刚发现了问题:根据调用文件的位置,路径的解释会有所不同。

诊断:我显示的块不在项目的根目录中,但我正在执行的主文件是(并且需要该代码块),因此从根文件的角度解释路径。

结果:我的日志写在我的项目目录之外。


推荐阅读