log4j2自定义布局无法使用Rolling appender文件

时间:2014-12-26 11:11:14

标签: layout customization log4j2 rollingfileappender

我正在使用log4j2和滚动appender文件。 我想使用自定义布局,但它无法正常工作。

我正在使用JBoss。我已将带有cusotmize布局的lib放在libs目录中,因此它位于类路径中。

在log4j2.xml中,我已经进行了以下配置:

    <Configuration status="trace" packages="mypackage.audit">
     ...
 <Routing name="RoutingAppender">
      <Routes pattern="$${ctx:FlowName">

    <Route>
          <RollingFile name="Rolling-${ctx:FlowName}" fileName="logs/Audit-${ctx:FlowName}.log"
                filePattern="./logs/Audit-${ctx:FlowName}-%d{yyyy-MM-dd}-%i.log.gz" >
                <PatternLayout>
                     <pattern>%d{ISO8601} [%t] %p %c{3} - %m%n</pattern>
                </PatternLayout>
                <Policies>
                  <TimeBasedTriggeringPolicy interval="6" modulate="true" />
                </Policies>
                <Layout type="AuditLayout" locationInfo="true"/>
         </RollingFile>
     </Route>
  </Routes>
  </Routing>

</Appenders>

<Loggers>
    <Logger name="CustomizeAuditing" level="info" >
        <AppenderRef ref="RoutingAppender"/>
    </Logger>
</Loggers>


    </Configuration>

但没有正确记录!

提前致谢

杰米拉

1 个答案:

答案 0 :(得分:1)

以下为我工作: log4j2 2.2版

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration packages="com.redknee.bssauto.helpers"> 
<Appenders> 
<RollingFile name="Rolling-default" fileName="logs/bssauto.html"
   filePattern="logs/$${date:yyyy-MM}/bssauto-%d{MM-dd-yyyy}-%i.log.gz">
<CustomHTMLLayout charset="UTF-8" title="BSSAuto Logs" locationInfo="true" />
 <Policies>
      <TimeBasedTriggeringPolicy />
      <SizeBasedTriggeringPolicy size="10 MB" />
 </Policies>
</RollingFile>      
</Appenders> 
<Loggers> 
<Root level="trace"> 
  <AppenderRef ref="Rolling-default"/>
</Root> 
</Loggers> 
</Configuration>

请注意以下

<Configuration packages="com.redknee.bssauto.helpers">

这里的包应该包含所有包含布局自定义类的包

<CustomHTMLLayout charset="UTF-8" title="BSSAuto Logs" locationInfo="true" />

和CustomHTMLLayout是通过扩展AbstractStringLayout

创建的自定义类