说明:
slf4j仅仅是日志系统的框架,只服务于各种日志系统(log4j、logback和java.util.logging等)。slf4j就好像是接口或者抽象类,而各种日志系统则是其实现类。
logback
——具体的日志系统
为什么选择logback而不是log4j:
1)logback更快
2)配置相比之下更简单
项目使用spring+springmvc+mybatis传统框架
pom.xml配置文件加入:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!-- logback扩展包,监听,用于解决与spring的结合 -->
<dependency>
<groupId>org.logback-extensions</groupId>
<artifactId>logback-ext-spring</artifactId>
<version>0.1.5</version>
</dependency>
logback配置文件如下:
<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="3 seconds">
<!-- 日志地址 -->
<property name="LOG_DIR" value="${catalina.home}/logs/" />
<property name="APP_NAME" value="ctsimdm" />
<property name="MAX_HISTORY" value="90"/>
<!-- 控制台输出日志 -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{26} - %msg%n</Pattern>
</encoder>
</appender>
<!-- 文件输出日志(Default) -->
<appender name="default-log-file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_DIR}/${APP_NAME}-today.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${APP_NAME}-%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>${MAX_HISTORY}</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>[%d{HH:mm:ss}] [%thread] |%level| %marker %logger{50} -> %X{rpid} %msg %n%ex</Pattern>
</encoder>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="stdout"/>
<appender-ref ref="default-log-file"/>
</root>
</configuration>
mybatis.xml配置加入
<settings>
<setting name="logImpl" value="SLF4J"/>
</settings>
web.xml配置加入
<!-- 加载logback配置文件 -->
<context-param>
<param-name>logbackConfigLocation</param-name>
<param-value>classpath:logback/logback.xml</param-value>
</context-param>
<listener>
<listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class>
</listener>