Apache Log4j 具有特定时区的日志记录
我希望日志应包含特定时区的日期条目。有没有办法强制时区?log4j.properties
现在我正在使用JDK 1.5,因为您已经知道JDK 1.5中存在在JDK 1.5中删除的时区错误。在JDK 1.5的情况下,默认情况下显示“GMT”时区。我想在Log4j中配置我的特定时区。
我希望日志应包含特定时区的日期条目。有没有办法强制时区?log4j.properties
现在我正在使用JDK 1.5,因为您已经知道JDK 1.5中存在在JDK 1.5中删除的时区错误。在JDK 1.5的情况下,默认情况下显示“GMT”时区。我想在Log4j中配置我的特定时区。
这将允许您在每行日志中查看时区信息:
%d{yyyy-MM-dd/HH:mm:ss.SSS/zzz}
诀窍是在模式中包含“zzz”,因为根据Javadoc for java.text.SimpleDateFormat(http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html),这是时区的代码。Log4J使用与SimpleDateFormat相同的规则。
Log4J Javadoc 中有更多细节:
http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html
在表格中查找“转化字符”为字母“d”的行。
最好的方法是使用 Apache Extras™ for Apache log4j™ 并将 The normal PatternLayout 替换为 org.apache.log4j.EnhancedPatternLayout,如果使用属性文件,请执行以下操作:
//log4j.appender.xxx.layout = org.apache.log4j.PatternLayout
//Replaced by
log4j.appender.xxx.layout = org.apache.log4j.EnhancedPatternLayout
然后,您可以在转换模式中使用 %d{ISO8601}{GMT} 而不是 %d,以 GMT 格式显示日期。可以指定任何时区而不是 GMT