javascript - 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?)。
问题是永远不会将任何信息保存到文件中。我尝试修改访问权限。没有什么。没有收到任何关于该问题的反馈。
对于文档,我可能太笨了,因为对此没有任何内容,但很多人似乎都面临同样的问题。
解决方案
好的,我刚刚发现了问题:根据调用文件的位置,路径的解释会有所不同。
诊断:我显示的块不在项目的根目录中,但我正在执行的主文件是(并且需要该代码块),因此从根文件的角度解释路径。
结果:我的日志写在我的项目目录之外。