无法为 log4j 控制台附加器配置时区
Couldn't configure timezone for log4j console appender
我正在尝试配置我的应用程序(它使用 log4j 作为日志记录机制)以使用 UTC-08:00
时间记录消息,但是当 log4j 初始化时它抛出错误并且继续使用系统时间。我不确定参数 TimeZone
是否不适用于布局 PatterLayout
。谁能帮我弄清楚我在这里做错了什么?
Log4J 配置:
<appender name="CustomAppender" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{MM:dd:yyyy HH:mm:ss} %m%n" />
<param name="TimeZone" value="UTC-08:00" />
</layout>
</appender>
<root>
<priority value="debug" />
<appender-ref ref="CustomAppender" />
</root>
初始化 log4j 时显示的警告消息是,
log4j:WARN No such property [timeZone] in org.apache.log4j.PatternLayout.
时区设置在 ConversionPattern 的值内。
详情:https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/EnhancedPatternLayout.html
以下是我用于将时间转换为特定时区的 log4j 配置。我已经添加了这个答案以备将来参考。
Log4J 配置:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="CustomAppender" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.EnhancedPatternLayout">
<param name="ConversionPattern" value="%d{DATE}{IST} IST %-5p [%t] %c: %m%n"/>
</layout>
</appender>
<root>
<priority value="debug" />
<appender-ref ref="CustomAppender" />
</root>
</log4j:configuration>
上面转换模式中的字符串 {IST}
会将时间转换为印度标准时间,另一个字符串 IST
将添加到记录器消息中(这是可选的)。
您可以在转换模式中使用任何有效的 ISO-8601
时区 - 可以是像 IST
这样的命名时区,也可以是像 UTC+05:30
这样的偏移量
我正在尝试配置我的应用程序(它使用 log4j 作为日志记录机制)以使用 UTC-08:00
时间记录消息,但是当 log4j 初始化时它抛出错误并且继续使用系统时间。我不确定参数 TimeZone
是否不适用于布局 PatterLayout
。谁能帮我弄清楚我在这里做错了什么?
Log4J 配置:
<appender name="CustomAppender" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{MM:dd:yyyy HH:mm:ss} %m%n" />
<param name="TimeZone" value="UTC-08:00" />
</layout>
</appender>
<root>
<priority value="debug" />
<appender-ref ref="CustomAppender" />
</root>
初始化 log4j 时显示的警告消息是,
log4j:WARN No such property [timeZone] in org.apache.log4j.PatternLayout.
时区设置在 ConversionPattern 的值内。
详情:https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/EnhancedPatternLayout.html
以下是我用于将时间转换为特定时区的 log4j 配置。我已经添加了这个答案以备将来参考。
Log4J 配置:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="CustomAppender" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.EnhancedPatternLayout">
<param name="ConversionPattern" value="%d{DATE}{IST} IST %-5p [%t] %c: %m%n"/>
</layout>
</appender>
<root>
<priority value="debug" />
<appender-ref ref="CustomAppender" />
</root>
</log4j:configuration>
上面转换模式中的字符串 {IST}
会将时间转换为印度标准时间,另一个字符串 IST
将添加到记录器消息中(这是可选的)。
您可以在转换模式中使用任何有效的 ISO-8601
时区 - 可以是像 IST
这样的命名时区,也可以是像 UTC+05:30