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