【发布时间】:2019-08-07 04:49:51
【问题描述】:
我有一个 log4j2 json 配置文件,但我似乎无法在 Appender 部分放置多个“文件”Appender。我想要做的是用我的日志语句记录两个两个文件:一个文件用于信息级别和更高级别,而另一个文件是调试级别。
`"configuration":
{
"appenders":
{
"Console": {
"name": "ConsoleAppender",
"target": "SYSTEM_OUT",
"PatternLayout": {
"pattern": "%d [%t] %-5p %c - %m%n"
}
},
"File": {
"name":"FileAppenderInfo",
"fileName":"/logs/info-logs.log",
"PatternLayout": {
"pattern":"%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"
}
},
"File": {
"name": "FileAppenderDebug",
"fileName": "/logs/debug-logs.log",
"PatternLayout": {
"pattern":"%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"
},
"DefaultRolloverStrategy": {
"max": "10"
}
}
},
"loggers": {
"logger": {
"name": "com.nf.eb2b.logging.DPLogger",
"level": "debug",
"appender-ref": [{"ref": "ConsoleAppender", "level":"info"},{"ref": "FileAppenderInfo", "level":"info"}, {"ref": "FileAppenderDebug", "level":"debug"}]
},
"root": {
"AppenderRef": [{"ref": "ConsoleAppender"}]
}
}
}
}
我期望的是日志目录中的两个文件。一个用于信息级日志,另一个用于调试级日志。我希望标准输出将信息级别日志记录到控制台。
相反,我看到编辑器不接受 json 中定义的两个 File appender,并抱怨存在重复键。另一个问题是只有一个文件附加程序被识别(第一个..)
如何配置单个记录器以将信息级日志写入控制台和文件以及存储调试级消息的第二个文件。
【问题讨论】:
-
检查以下答案。它可能会对你有所帮助。stackoverflow.com/questions/21512629/…
-
我建议你在配置中添加 "status": "debug" 这样你就可以看到 Log4j 在做什么了。
-
你解决了吗?
标签: java logging configuration log4j2