1. 程式人生 > >slf4j+logback+spring配置

slf4j+logback+spring配置

說明:

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>