使用 log4j2.xml 每天生成日志文件以及如何在 log4j2.xml 中使用 SNMP appender

Generate log file daily using log4j2.xml and how to use SNMP appender in log4j2.xml

1)我想使用 log4j2.xml 每天生成日志文件。我正在使用 RollingFile appender 标签来实现 same.However,它将日志附加到同一个文件上。

   <RollingFile name="FrameworkAppender"     filePattern="${jboss.server.home.dir}/xyz_app-%d{yyyy-MM-dd}-%i.log" >
   <PatternLayout>
    <Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
  </PatternLayout>
        <LevelRangeFilter minLevel="ERROR" maxLevel="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            <Policies>          
        <CronTriggeringPolicy schedule="0 0 0 * * ?" />
       <SizeBasedTriggeringPolicy size="250 MB" />
        </Policies>
        <DefaultRolloverStrategy max="10"/>
    </RollingFile>

2)下面是我们在log4j.xml中使用的类别标签,我想知道log4j2.xml中的类别标签相当于什么?

<category name="biz.theXYZ" additivity="false">
    <level value="INFO" />
    <appender-ref ref="FrameworkAppender" />
    <appender-ref ref="ConsoleAppender" />      
</category>

3)如何定义具有log4j2所有属性的SNMPTrapAppender?

 <appender name="TRAP_LOG_APPENDER" class="org.apache.log4j.ext.SNMPTrapAppender">      
                <param name="ImplementationClassName" value="org.apache.log4j.ext.JoeSNMPTrapSender"/>
                <param name="EnterpriseOID" value="1.3.6.1.4.1.2854.1"/>
                <param name="ApplicationTrapOID" value="1.3.6.1.4.1.24.12.10.22.64"/>
                <param name="ManagementHost" value="127.0.0.1"/> 
                <param name="ManagementHostTrapListenPort" value="162"/> 
                <param name="LocalIPAddress" value="127.0.0.1"/> 
                <param name="LocalTrapSendPort" value="161"/> 
                <param name="GenericTrapType" value="6"/> 
                <param name="SpecificTrapType" value="12345678"/> 
                <param name="CommunityString" value="public"/> 
                <param name="ForwardStackTraceWithTrap" value="true"/> 
                <param name="Threshold" value="INFO"/> 
                <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="%d,%p,[%t],[%c],%m%n"/> 
                </layout> 
            </appender>

你应该添加

<TimeBasedTriggeringPolicy interval="1" modulate="true"/>

对于第二个问题,log4j2中的等价物是:

  <Loggers>
    <Logger name="biz.theXYZ" level="info">
      <AppenderRef ref="FrameworkAppender"/>
      <AppenderRef ref="ConsoleAppender"/>
    </Logger>
  </Loggers>

确保在 log4j2 文件的 Appenders 部分包含 FrameworkAppender 和 ConsoleAppender。