每个日志条目带有时间戳的log4j

这是我的日志输出

INFO main digestemails - process inbox INFO main digestemails - checking for emails in c:\development\DCMail\email\KN-Source INFO main digestemails - digesting 003d01c95a7b_3446880_0202fea9@xxxx.com.eml INFO main digestemails - extracting attachments INFO main digestemails - no attachments or no attachments supported INFO main digestemails - updating database INFO main digestemails - email -> COMPLETED folder INFO main digestemails - 

我想每个日志消息即时戳

 INFO 2008-12-25 13:14:00 digestemails - email -> COMPLETED folder 

这里是我的log4jconfiguration文件

 log4j.rootLogger=debug, stdout, R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # Pattern to output the caller's file name and line number. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=c:\\development\\DCMail\\logs\\digestlogfolder\\digest-logfile.log log4j.appender.R.MaxFileSize=100KB # Keep one backup file log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 

我该怎么做?

在PatternLayout中使用%d。

另外,%d可以采用格式模式,如%d {dd MMM yyyy HH:mm:ss,SSS},您可以挑选所需的元素。 当格式模式被省略时,date将采用ISO8601格式。

从我的属性文件中提取

 log4j.rootLogger=INFO, stdout, logfile log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %p (%t) [%c] - %m%n log4j.appender.logfile=org.apache.log4j.RollingFileAppender log4j.appender.logfile.File=C:/log/client.log log4j.appender.logfile.MaxFileSize=5MB log4j.appender.logfile.MaxBackupIndex=0 log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n 

您可以在log4j javadoc中find更多的转换字符用法。例如,在http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html