【发布时间】:2015-01-12 11:41:55
【问题描述】:
不是节点专家,这是我第一次使用log4js-node。
我正在尝试在运行 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 能够捕获应用程序的正常错误消息。
我如何让 log4js 登录到 log_file.log 他们给我发送该日志的电子邮件?我已经安装了 nodemailer 0.7,仅供参考,来处理 smtp。
【问题讨论】:
-
正如 Allenzzxd 建议的那样,删除“类别”。无论如何,这为我解决了这个问题。如果我没记错的话,该类别是用于当您想为不同的场合选择不同的日志记录机制时,您可以执行 log4js.getLogger(
).log( ) 或类似的操作。
标签: javascript express error-handling log4js-node