${sys:catalina.home}
等价于
System.getProperty("catalina.home")
就是Tomcat的根目录: C:\apache-tomcat-7.0.77
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" />
2017-08-10 09:25:22 [http-bio-8080-exec-3] INFO AuthorizationInterceptor:58 - LOCAL USER CODE: admin
%d{HH:mm:ss.SSS} 毫秒的时间
%t 当前线程名称
%-5level 日志级别,-5表示左对齐并且固定输出5个字符,如果不足在右边补0
%c{1} 类名
%L 输出行号
%msg 日志文本
%n 换行
其他常用的占位符有:
%F 输出所在的类文件名,如Client.java
%M 输出所在方法名
%l 输出语句所在的行数, 包括类名、方法名、文件名、行数 (这个比较强大)
2017-08-10 09:33:59 [http-bio-8080-exec-3] INFO com.*.*.AuthorizationInterceptor.preHandle(AuthorizationInterceptor.java:58) - LOCAL USER CODE: admin
log4j2依赖jar包
log4j-api-2.6.2.jar
log4j-core-2.6.2.jar
log4j-slf4j-impl-2.6.2.jar
log4j-web-2.6.2.jar
slf4j-api-1.7.24.jar
slf4j-log4j12-1.6.1.jar
<?xml version="1.0" encoding="UTF-8"?>
<!-- 测试时,status改为trace/debug/info/warn/error/fatal -->
<Configuration status="warn">
<Appenders>
<!-- Console输出 -->
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" />
</Console>
<!-- INFO日志文件输出 -->
<RollingFile name="InfoRollingFile" filename="${sys:catalina.home}/logs/project_name/appInfo.log"
filepattern="${sys:catalina.home}/logs/project_name/$${date:yyyy-MM}/appInfo.%d{yyyyMMdd}.%i.log.gz">
<ThresholdFilter level="INFO" />
<PatternLayout>
<Charset>utf-8</Charset>
<Pattern>%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="50"/>
</RollingFile>
<!-- DEBUG日志文件输出 -->
<RollingFile name="DebugRollingFile" filename="${sys:catalina.home}/logs/project_name/appDebug.log"
filepattern="${sys:catalina.home}/logs/project_name/$${date:yyyy-MM}/appDebug.%d{yyyyMMdd}.%i.log.gz">
<ThresholdFilter level="DEBUG" />
<PatternLayout>
<Charset>utf-8</Charset>
<Pattern>%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="50"/>
</RollingFile>
<!-- ERROR日志文件输出 -->
<RollingFile name="ErrorRollingFile" filename="${sys:catalina.home}/logs/project_name/appError.log"
filepattern="${sys:catalina.home}/logs/project_name/$${date:yyyy-MM}/appError.%d{yyyyMMdd}.%i.log.gz">
<ThresholdFilter level="ERROR" />
<PatternLayout>
<Charset>utf-8</Charset>
<Pattern>%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="50"/>
</RollingFile>
</Appenders>
<!-- 测试时修改为需要的级别及需要的输出 -->
<Loggers>
<Root level="info">
<AppenderRef ref="InfoRollingFile"/>
<AppenderRef ref="ErrorRollingFile"/>
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>