当前位置: 首页 > 知识库问答 >
问题:

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

景鹏飞
2023-03-14

1)我想每天使用log4j2.xml.生成日志文件,我使用RollingFile appender标记来实现同样的功能。但是,它将日志附加在同一文件上。

   <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中的所有属性定义snmptrappender?

 <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>

共有1个答案

许永年
2023-03-14

你应该加上

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

对于第二个问题,log4j2中的等效项是:

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

请确保将FrameworkAppender和ConsoleAppender包含在log4j2文件的Appender部分。

 类似资料:
  • 我想通过log4j2配置生成半天日志文件。我已经给出: 还定义了: 但我只得到AM日志在这种方式,虽然我希望它是什么: 有人能帮我吗?

  • 我想使用新的log4j2-Java日志框架。一切正常,但我从一小时后就尝试加载一个自定义配置文件来配置日志记录(如日志级别)。 这是我的log4j2.xml: 我尝试了以下方法,但没有任何效果: 移动log4j2.xml文件,使其位于默认包中。 将log4j2.xml文件移动到项目中的任意位置 将log4j2.xml文件命名为log4j.xml 在项目中创建一个文件夹,将log4j2.xml文件放

  • 我从log4j1迁移过来。x到log4j2。我删除了log4j。属性文件并创建了log4j2。xml文件。迁移后,我运行了应用程序,但找不到。日志文件。 有没有人能告诉我

  • 我最近切换到ApacheLog4J2,仍然找不到使用log4j2配置hibernate日志的方法。xml。 因为我找不到解决这个问题的方法,我仍然使用log4j.properties文件显式Hibernate。这不是最好的解决方案,因为我的log4j2.xml使用JPA appender(将日志写入数据库)。我不想为Hibernate编写单独的逻辑。 有没有办法使用log4j2配置Hibernat

  • 我希望由log4j2创建的日志文件在其文件名中包含日期模式,包括当前活动文件。也就是说,如果今天的日期是2016-12-15,我希望当前日志文件是lager-2016-12-15.log。当日期改变时,我希望创建一个名为lager-2016-12-16.log的新文件。 使用,我无法使当前活动日志文件的文件名中具有日期模式。我的log4j2.xml: 使用此配置,翻转时的复制被搞乱了。从fileN