springmvc+slf4j+log4j2的集成
引入相关jar包
<!--日志系统-->
<!-- 将common-log牵引到slf4j-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.9</version>
</dependency>
<!-- slf4j核心包-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.9</version>
</dependency>
<!--核心log4j2jar包-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
<!--log4j 桥接slf4j-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.8.2</version>
</dependency>
<!--web工程需要包含log4j-web,非web工程不需要-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>2.8.2</version>
</dependency>
配置文件
配置文件必须放置到ClassPath下供log4j2初始化能够寻找到,否者需要在web.xml里面指定日志配置位置
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="warn">
<Properties>
<Property name="log_collect_path">/Users/XXXX</Property>
</Properties>
<appenders>
<!--输出日志到控制台-->
<Console name="stdout" target="SYSTEM_OUT">
<PatternLayout pattern="%5p [%t] %d{yyyy-MM-dd HH:mm:ss.SSS} %l %m %n"/>
</Console>
<!--输出日志到指定位置,appender为回滚-->
<RollingRandomAccessFile name="info"
fileName="${log_collect_path}/info.log"
filePattern="${log_collect_path}/info.log.%d{yyyy-MM-dd}">
<PatternLayout
pattern="%5p [%t] %d{yyyy-MM-dd HH:mm:ss.SSS} %l %m %n"/>
<Policies>
<!--默认一天一翻滚-->
<TimeBasedTriggeringPolicy/>
<!--当日志文件大于100翻滚-->
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<!--当日志文件超过了20个开始删除-->
<DefaultRolloverStrategy max="20"/>
</RollingRandomAccessFile>
</appenders>
<loggers>
<root level="info" >
<appender-ref ref="stdout"/>
<appender-ref ref="info"/>
</root>
</loggers>
</configuration>
使用
// 注解的方式
@Slf4j
public class Test {
// 直接获取slf4j的logger对象进行日志的输出
// private static final Logger log = LoggerFactory.getLogger(Test.class);
public static void main(String[] args) {
log.info("测试info日志输出");
log.warn("测试warn日志输出");
log.error("测试error日志输出");
}
}