这是我的log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="OFF">
<Appenders>
<!-- Generate STDOUT in console -->
<Console name="CONSOLE" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />
</Console>
<!-- Generate rolling log for router with per hour interval policy -->
<RollingFile name="RouterRollingFile" fileName="/apps/bea/mb-logs/router.log"
immediateFlush="false" filePattern="/apps/bea/mb-logs/router.%d{yyyy-MM-dd-HH}-%i.log">
<PatternLayout>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %5p [%t] (%F:%L) - %m%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
<!-- <DefaultRolloverStrategy fileIndex="max" max="24" /> -->
</RollingFile>
</Appenders>
<Loggers>
<AsyncLogger name="com.tritronik.mb.router" level="info"
additivity="false" includeLocation="true">
<AppenderRef ref="RouterRollingFile" />
</AsyncLogger>
<!-- <Root level="info">
<appender-ref ref="CONSOLE" />
</Root> -->
</Loggers>
我想实现每小时滚动的每日滚动文件,到目前为止,我还没有能够以适当的格式生成日志,而且我记得,interval参数似乎是按天增加而不是小时。
我想实现这个目标:
router.log - &gt;目前编写的文件
router.log.2014-06-20-00
router.log.2014-06-20-01
...
router.log.2014-06-20-23
router.log.2014-06-21-00
...
相反,我实现了这个:
router.log
router.log.2014-06-20-1 - &gt;一天的日志
我已经能够使用通常的log4j做到这一点,但io性能下降并迫使我使用log4j2,但我偶然发现了这个问题。
我哪里错了?或者log4j2不支持这个吗?
谢谢
答案 0 :(得分:1)
您可能发现了一个错误。
这只发生在异步记录器上,还是配置普通(同步)记录器时?
另外,您是否尝试过使用如下所示的filePattern:
filePattern="/apps/bea/mb-logs/$${date:yyyy-MM-dd}/router.%d{yyyy-MM-dd-HH}.log"
?
我有一种(公认的含糊不清)怀疑$$ {date:...}部分可能是相关的。
如果以上两者都没有任何区别,请你在log4j2问题跟踪器上提交一张Jira票吗? https://issues.apache.org/jira/browse/LOG4J2