log4j2配置
Posted 向天再借500年V
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了log4j2配置相关的知识,希望对你有一定的参考价值。
log4j2配置
日志输出格式:
%-5level 级别
%dyyy-MM-dd HH:mm:ss.SSS 日期
%c 当前类全名
%M 当前执行方法
%L 行号
%t 线程名
%m 信息
%n 换行
log4j2.xml范例1
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<properties>
<property name="logDir">D:/0000/logs</property>
</properties>
<Appenders>
<!-- 控制台 -->
<Console name="consoleAppender" target="SYSTEM_ERR">
<!--pattern:日期,线程名,日志级别,日志名称,日志信息,换行 -->
<PatternLayout
pattern="%dyyyy-MM-dd HH:mm:ss.SSS %-5level [%t] %c.%M[%L] - %m%n" />
</Console>
<!-- 文件 -->
<File name="fileAppender" fileName="$logDir//log4j2.log">
<PatternLayout
pattern="%dyyyy-MM-dd HH:mm:ss.SSS %-5level [%t] %c.%M[%L] - %m%n" />
</File>
<!-- 按照格式拆分日志 -->
<RollingFile name="rollingFile"
fileName="$logDir/rollog.log"
filePattern="$logDir/rollog_-%dyyyyMMdd-%i">
<PatternLayout
pattern="%dyyyy-MM-dd HH:mm:ss.SSS %-5level [%t] %c.%M[%L] - %m%n" />
<Policies>
<!-- 启动时,处罚拆分规则,产生一个日志文件 -->
<OnStartupTriggeringPolicy />
<!-- 按照大小拆分 -->
<SizeBasedTriggeringPolicy size="10kb" />
<!-- 按照时间节点拆分,拆分规则filePattern -->
<TimeBasedTriggeringPolicy />
</Policies>
<!-- 同一目录下,文件最大数量,超过则覆盖 -->
<DefaultRooloverStrategy max="3" />
</RollingFile>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="consoleAppender" />
<!-- <AppenderRef ref="fileAppender" /> -->
<AppenderRef ref="rollingFile" />
</Root>
</Loggers>
</Configuration>
log4j2.xml范例2
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="warn">
<Properties>
<!-- 配置日志文件输出目录,此配置将日志输出到tomcat根目录下的指定文件夹-->
<Property name="LOG_HOME">logs</Property>
<!-- 日志输出格式 -->
<Property name="LOG_PATTERNLAYOUT">[SysLog] [%p] [%dyyyy-MM-dd HH:mm:ss] [%l] : %m%n</Property>
</Properties>
<Appenders>
<!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch),当前只输出TRACE,DEBUG,INFO 三种 -->
<!-- 输出日志的格式 -->
<Console name="console_out_appender" target="SYSTEM_OUT">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="$LOG_PATTERNLAYOUT"/>
</Console>
<!-- INFO级别日志 -->
<RollingRandomAccessFile name="info_appender" immediateFlush="true" fileName="$LOG_HOME/sys.log"
filePattern="$LOG_HOME/sys.log.%dyyyy-MM-dd">
<PatternLayout pattern="$LOG_PATTERNLAYOUT"/>
<Policies>
<!-- <SizeBasedTriggeringPolicy size="2MB"/>-->
<!-- 如果启用此配置,则日志会按文件名生成新压缩文件, 即如果filePattern配置的日期格式为 %dyyyy-MM-dd HH
,则每小时生成一个压缩文件, 如果filePattern配置的日期格式为 %dyyyy-MM-dd ,则天生成一个压缩文件 -->
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="$LOG_HOME" maxDepth="1">
<IfFileName glob="*.log.*"/>
<IfLastModified age="3d"/>
<!--!Note: 这里的age必须和filePattern协调,
后者是精确到HH, 这里就要写成xH, xd就不起作用,精确到mm 下面就要成分单位 4320是3天的 ,
时间需要保证文件不被占用否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->
</Delete>
</DefaultRolloverStrategy>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<!-- 配置日志的根节点 -->
<root level="INFO">
<appender-ref ref="console_out_appender"/>
<appender-ref ref="info_appender"/>
</root>
<!-- 第三方日志系统,为指定包下的class指定不同的日志级别 -->
<!-- <logger name="org.springframework.core" level="warn"/>-->
<!-- <logger name="org.springframework.beans" level="warn"/>-->
<!-- <logger name="org.springframework.context" level="warn"/>-->
<!-- <logger name="org.springframework.web" level="warn"/>-->
<!-- <logger name="org.jboss.netty" level="warn"/>-->
<!-- <logger name="org.apache.http" level="warn"/>-->
</Loggers>
</configuration>
以上是关于log4j2配置的主要内容,如果未能解决你的问题,请参考以下文章