ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

log4j配置异步同步混合输出的配置文件

2022-06-30 12:10:56  阅读:124  来源: 互联网

标签:xml 异步 invoke 配置文件 输出 -- log4j


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <!-- 日志输出到控制台 -->
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <!-- 日志输出格式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %5p %c - %m%n"/>
        </layout>
        <!--过滤器设置输出的级别-->
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <!-- 设置日志输出的最小级别 -->
            <param name="levelMin" value="DEBUG"/>
            <!-- 设置日志输出的最大级别 -->
            <param name="levelMax" value="ERROR"/>
        </filter>
    </appender>

    <!-- 滚动记录info级别日志 -->
    <appender name="infoAppender" class="org.apache.log4j.RollingFileAppender">
        <param name="encoding" value="UTF-8"/>
        <!-- 输出文件全路径名-->
        <param name="File" value="${catalina.home}/logs/ysmq-front/info.log"/>
        <!--是否在已存在的文件追加写:默认时true,若为false则每次启动都会删除并重新新建文件-->
        <param name="Append" value="true"/>
        <!--是否启用缓存,默认false-->
        <param name="BufferedIO" value="true"/>
        <!--缓存大小,依赖上一个参数(bufferedIO), 默认缓存大小8K  -->
        <param name="BufferSize" value="8192"/>
        <param name="MaxFileSize" value="300MB"/>
        <param name="MaxBackupIndex" value="100"/>
        <!-- 日志输出格式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %5p %c - %m%n"/>
        </layout>
    </appender>

    <!-- 滚动记录warn级别日志 -->
    <appender name="warnAppender" class="org.apache.log4j.RollingFileAppender">
        <param name="encoding" value="UTF-8"/>
        <!-- 输出文件全路径名-->
        <param name="File" value="${catalina.home}/logs/ysmq-front/warn.log"/>
        <!--是否在已存在的文件追加写:默认时true,若为false则每次启动都会删除并重新新建文件-->
        <param name="Append" value="true"/>
        <param name="Threshold" value="WARN"/>
        <param name="MaxFileSize" value="300MB"/>
        <param name="MaxBackupIndex" value="10"/>
        <!-- 日志输出格式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %5p %c - %m%n"/>
        </layout>
    </appender>

    <!-- 滚动记录warn级别日志 -->
    <appender name="errorAppender" class="org.apache.log4j.RollingFileAppender">
        <param name="encoding" value="UTF-8"/>
        <!-- 输出文件全路径名-->
        <param name="File" value="${catalina.home}/logs/ysmq-front/error.log"/>
        <!--是否在已存在的文件追加写:默认时true,若为false则每次启动都会删除并重新新建文件-->
        <param name="Append" value="true"/>
        <param name="Threshold" value="ERROR"/>
        <param name="MaxFileSize" value="200MB"/>
        <param name="MaxBackupIndex" value="10"/>
        <!-- 日志输出格式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%L] - %m%n"/>
        </layout>
    </appender>

    <!-- 滚动记录perform日志 -->
    <appender name="perAppender" class="org.apache.log4j.RollingFileAppender">
        <param name="encoding" value="UTF-8"/>
        <!-- 输出文件全路径名-->
        <param name="File" value="${catalina.home}/logs/per.log"/>
        <!--是否在已存在的文件追加写:默认时true,若为false则每次启动都会删除并重新新建文件-->
        <param name="Append" value="true"/>
        <param name="Threshold" value="ERROR"/>
        <!--是否启用缓存,默认false-->
        <param name="BufferedIO" value="true"/>
        <!--缓存大小,依赖上一个参数(bufferedIO), 默认缓存大小8K  -->
        <param name="BufferSize" value="8192"/>
        <param name="MaxFileSize" value="100MB"/>
        <param name="MaxBackupIndex" value="1"/>
        <!-- 日志输出格式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %p %c{1} [%L] - %m%n"/>
        </layout>
    </appender>

    <!-- 滚动记录point日志 -->
    <appender name="pointAppender" class="org.apache.log4j.RollingFileAppender">
        <param name="encoding" value="UTF-8"/>
        <!-- 输出文件全路径名-->
        <param name="File" value="${catalina.home}/logs/point.log"/>
        <!--是否在已存在的文件追加写:默认时true,若为false则每次启动都会删除并重新新建文件-->
        <param name="Append" value="true"/>
        <!--是否启用缓存,默认false-->
        <param name="BufferedIO" value="true"/>
        <!--缓存大小,依赖上一个参数(bufferedIO), 默认缓存大小8K  -->
        <param name="BufferSize" value="4096"/>
        <param name="Threshold" value="INFO"/>
        <param name="MaxFileSize" value="200MB"/>
        <param name="MaxBackupIndex" value="10"/>
        <!-- 日志输出格式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%m%n"/>
        </layout>
    </appender>
    <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
        <appender-ref ref="pointAppender"/>
    </appender>


    <!--
    注意:
    1:当additivity="false"时,root中的配置就失灵了,不遵循缺省的继承机制
    2:logger中的name非常重要,它代表记录器的包的形式,有一定的包含关系,试验表明
     2-1:当定义的logger的name同名时,只有最后的那一个才能正确的打印日志
     2-2:当对应的logger含有包含关系时,比如:name=test.log4j.test8 和 name=test.log4j.test8.UseLog4j,则2-1的情况是一样的
     2-3:logger的name表示所有的包含在此名的所有记录器都遵循同样的配置,name的值中的包含关系是指记录器的名称哟!注意啦!
    3:logger中定义的level和appender中的filter定义的level的区间取交集
    4:如果appender中的filter定义的 levelMin > levelMax ,则打印不出日志信息
    5:代码中使用Logger.getLogger("invoke")获得此输出器,且不会使用根输出器
    -->
    <logger name="per" additivity="false">
        <level value ="ERROR"/>
        <appender-ref ref="perAppender"/>
    </logger>

    <logger name="point" additivity="false">
        <level value ="INFO"/>
        <appender-ref ref="ASYNC"/>
    </logger>

    <!--指定部分类的日志打印级别-->
    <logger name="org.springframework"><level value="INFO"/></logger>
    <logger name="org.apache.ibatis"><level value="INFO"/></logger>
    <logger name="org.apache.zookeeper"><level value="INFO"/></logger>
    <logger name="org.I0Itec"><level value="INFO"/></logger>
    <logger name="com.google.code"><level value="INFO"/></logger>
    <logger name="org.mybatis"><level value="INFO"/></logger>
    <logger name="org.apache.kafka"><level value="INFO"/></logger>
    <logger name="com.amazonaws"><level value="INFO"/></logger>
    <logger name="kafka"><level value="INFO"/></logger>
    <logger name="com.alibaba.dubbo"><level value="INFO"/></logger>
    <logger name="com.baidu.disconf"><level value="INFO"/></logger>
    
    <!-- 根logger的设置,若代码中未找到指定的logger,则会根据继承机制,使用根logger-->
    <root>
        <level value="INFO"/>
<!--        <appender-ref ref="console"/>-->
        <appender-ref ref="infoAppender"/>
        <appender-ref ref="warnAppender"/>
        <appender-ref ref="errorAppender"/>
    </root>

</log4j:configuration>

  文件名:log4j.xml

标签:xml,异步,invoke,配置文件,输出,--,log4j
来源: https://www.cnblogs.com/bin-zhao/p/16426356.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有