如何根据我的设计正确配置log4j.properties?

时间:2016-11-30 11:59:30

标签: properties log4j

我的桌面应用程序log4j.properties文件是:

## Log levels
## TRACE < DEBUG < INFO < WARN < ERROR < FATAL
log4j.rootLogger=INFO
#
## Appender Configuration
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
#
## Pattern to output the caller's file name and line number
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{${datestamp}} %-5p %c{1}:%L - %m%n

我使用java -jar appName.jar > <path-to-log-dir>/logFile.log运行此应用程序。

此文件的输出例如是:

0 [main] INFO br.com.mentium.hrm.agent.Agent  - Thread started at: Wed Nov 30 09:53:03 BRST 2016
3 [main] INFO br.com.mentium.hrm.agent.Agent  - HRM Agent
3 [main] INFO br.com.mentium.hrm.agent.Agent  - 

3 [main] INFO br.com.mentium.hrm.agent.Agent  - Polling server every 1 minute(s).
3 [main] INFO br.com.mentium.hrm.agent.Agent  - 

4 [main] INFO br.com.mentium.hrm.agent.Agent  - ######################
4 [main] INFO br.com.mentium.hrm.agent.Agent  - 

5 [main] INFO br.com.mentium.hrm.agent.Agent  - Execution  at Wed Nov 30 09:53:03 BRST 2016
5 [main] INFO br.com.mentium.hrm.agent.Agent  - Iteration number: 1
5 [main] INFO br.com.mentium.hrm.agent.Agent  - 

每行的第一个数字是自应用程序启动以来的毫秒数。我想。

我想将日志的输出格​​式化为:

yyyy-MM-dd hh:mm:sss abbreviatedClassName(即b.c.m.h.a.ClassName) - 消息

我知道我需要在ConversionPattern行上执行此操作,但我对其执行的任何更改似乎都没有生效。

这里有什么问题?

1 个答案:

答案 0 :(得分:2)

您需要像这样指定它。请注意,这并不完全符合您的要求。我希望你能尝试一下并达到你的确切要求。

您可以阅读有关模式布局here的更多信息。

log4j.appender.CONSOLE.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss,SSS} %-5p %c{1}:%L - %m%n