log4j有针对性的将日志输出到不同文件且不重复输出到root中

需求描述:将消费的队列情况单独生成到一个日志文件中,防止消息丢失找回。
做如下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="myConsole" class="org.apache.log4j.ConsoleAppender">
           <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="[%d{MM-dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" />
           </layout>
           <filter class="org.apache.log4j.varia.LevelRangeFilter">
                <param name="levelMin" value="info" />
                <param name="levelMax" value="off" />
                <param name="AcceptOnMatch" value="true" />
           </filter>
     </appender>

     <appender name="activexAppender" class="org.apache.log4j.DailyRollingFileAppender">
           <param name="File" value="../log/test.log" />
           <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
           <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern"
                     value="[%d{MM-dd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n" />
           </layout>
     </appender>

     <!-- 新增加的日志记录 -->
     <appender name="queueAppender" class="org.apache.log4j.DailyRollingFileAppender">
           <param name="File" value="../log/myTest.log" />
           <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
           <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="[%d{MM-dd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n" />
           </layout>
     </appender>
     <logger name="queueLog" additivity="false">
       <level value="info"/>
       <appender-ref ref="queueAppender"/>
     </logger>
     <!--新增结束  -->
     <root>
           <priority value="info" />
           <appender-ref ref="myConsole" />
           <appender-ref ref="activexAppender" />
     </root>
</log4j:configuration>

logger 为不同的文件使用不同的log配置 additivity=”false”表示不继承父logger的配置,这个log不会将日志反馈到root中:

private static Log logger = LogFactory.getLog(ConsumeQueue.class);
     //用于单独记录消费队列
private static Log queueLog = LogFactory.getLog("queueLog");
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值