【发布时间】:2018-03-21 08:20:12
【问题描述】:
我为 Winston 中的错误和警告进行了两次传输,据说是写入文件。控制台日志记录的现有传输工作正常,我确实检查了pm2 logs 并看到了日志,但文件传输没有保存任何内容。
'use strict';
const winston = require('winston');
const m = require('moment-timezone');
let logger = null;
/**
* Initializes the logger
* @param {object} configLogging
*/
module.exports.initialize = function initialize(configLogging) {
const dateFormat = 'dddd, MMMM Do YYYY, h:mm:ss a';
logger = new winston.Logger({
transports: [
new (winston.transports.Console)({
name: 'info-console',
level: configLogging.level,
colorize: true,
timestamp: function() { return m.utc().format(dateFormat); }
}),
new (winston.transports.File)({
name: 'warning-file',
filename: 'warning-file.log',
level: 'warning'
}),
new (winston.transports.File)({
name: 'error-file',
filename: 'error-file.log',
level: 'error'
})
]
});
logger.info('Starting logging service');
};
/**
* Gets the logger instance
* @returns {LoggerInstance} winLogger
*/
module.exports.get = function get() {
return logger;
};
【问题讨论】:
-
我建议手动创建具有写入权限的 error-file.log 和 warning-file.log 文件来测试 Winston 日志记录。如果它有效,则不是 Winston 问题,请为当前用户提供对您的应用所在目录的正确读/写/执行访问权限。
-
我确实在我的本地计算机上测试了记录器,它工作正常,但由于某种原因它在服务器@mandar.gokhale 中无法正常工作
标签: node.js logging pm2 winston