我的桌面应用程序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行上执行此操作,但我对其执行的任何更改似乎都没有生效。
这里有什么问题?
答案 0 :(得分:2)
您需要像这样指定它。请注意,这并不完全符合您的要求。我希望你能尝试一下并达到你的确切要求。
您可以阅读有关模式布局here的更多信息。
log4j.appender.CONSOLE.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss,SSS} %-5p %c{1}:%L - %m%n