您的位置:首页 > 其它

log4j2 按照日志级别将日志输出到不同的文件

2014-12-26 15:26 525 查看
<?xml version="1.0" encoding="UTF-8"?>

<!-- status="OFF",可以去掉,它的含义为是否记录log4j2本身的event信息,默认是OFF -->

<configuration status="OFF">

<!-- 定义下面的引用名 -->

<Properties>

<property name="log_pattern">%d{yyyy-MM-dd HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n</property>

<property name="file_name">logs/app.log</property>

<property name="rolling_file_name">logs/app-%d{yyyy-MM-dd}-%i.log.gz</property>

<property name="every_file_size">10M</property><!-- 日志切割的最小单位 -->

<property name="output_log_level">debug</property><!-- 日志输出级别 -->

</Properties>

<!--先定义所有的appender-->

<appenders>

<!--这个输出控制台的配置-->

<Console name="Console" target="SYSTEM_OUT">

<!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->

<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>

<!--这个都知道是输出日志的格式-->

<PatternLayout pattern="${log_pattern}"/>

</Console>

<!--

重要的是,如果有多个ThresholdFilter,那么Filters是必须的,同时在Filters中,首先要过滤不符合的日志级别,把不需要的首先DENY掉,然后再ACCEPT需要的日志级别,这个次序不能搞颠倒。



-->

<!--这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->

<!-- 按月生成归档日志,可以使用 filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz" -->

<!-- 显示error级别之外的信息 -->

<RollingFile name="RollingFile" fileName="${file_name}"

filePattern="${rolling_file_name}">

<PatternLayout pattern="${log_pattern}"/>

<SizeBasedTriggeringPolicy size="${every_file_size}"/>

<Filters>

<ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>

<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>

</Filters>

</RollingFile>

<!--如果需要配置多个Rollingfile地址,还需要在root下添加appender-ref ref="RollingFile1"/>

只显示error级别的信息

-->

<RollingFile name="RollingFile1" fileName="logs/app1.log"

filePattern="logs/app1-%d{yyyy-MM-dd}-%i.log.gz">

<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>

<SizeBasedTriggeringPolicy size="10MB"/>

<Filters>

<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>

</Filters>

</RollingFile>

</appenders>

<!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->

<loggers>

<!--建立一个默认的root的logger,需要在root的level中指定输出的级别,-->

<root level="${output_log_level}">

<appender-ref ref="RollingFile"/>

<appender-ref ref="RollingFile1"/>

<appender-ref ref="Console"/>

</root>

</loggers>

</configuration>

上面配置文件中粗体的信息用来配置显示级别。其他信息请参考我的blog:[ log2j 2.1使用指南]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: