不是节点专家,这是我第一次使用log4js - 节点。
我正在尝试让我的ERROR日志和我的任何控制台日志在运行Express的nodejs服务器上使用log4js写入log_file.log文件。这是我的配置文件:`
{
"replaceConsole": true,
"appenders": [
{
"type": "file",
"filename":"log_file.log",
"maxLogSize":20480,
"backups": 3,
"category":"relative-logger"
},
{
"type":"logLevelFilter",
"level":"ERROR",
"appender":{
"type":"file",
"filename":"log_file.log"
}
},
{
"appender": {
"type": "smtp",
"recipients": "myemail@gmail.com",
"sender": "myemailadd@gmail.com",
"sendInterval": 60,
"transport": "SMTP",
"SMTP": {
"host": "localhost",
"port": 25
}
}
}]
}`
以下是我在app.js文件中要求应用程序的方式:
var log4js = require("log4js");
log4js.configure("log_config.json")
logger = log4js.getLogger();
我将手动错误发送到log4js(我可以将其记录到控制台上,但是无法写入log_file):
logger.error('A mandrill error occurred: ' + e.name + ' - ' + e.message);
我希望jog4js能够捕获应用程序的正常ERROR消息。
如何让log4js登录到log_file.log,他们发给我一封该日志的电子邮件?我安装了nodemailer 0.7,fyi来处理smtp。
答案 0 :(得分:1)
也许您可以删除文件追加器中的"category":"relative-logger"
。
答案 1 :(得分:0)
是删除"类别":" relative-logger"它以某种方式阻止数据传输到您的日志文件..或尝试这样的事情:
// Setup Logging
log4js.configure({
appenders: [
{ type: 'console' },
{ type: 'file', filename: '.\\logs\\PesaFastaArchiveData.log' }
]
});

路径当然是Windows路径。