1. 程式人生 > >springmvc 整合slf4j + logback

springmvc 整合slf4j + logback

  1. 排除commons-logging 依賴
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.1.0.RELEASE</version>
    <exclusions>
        <exclusion>
        <groupId>commons-logging</
groupId
>
<artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version
>
1.7.25</version> </dependency>

暫時還未找到檢視排除是否成功的方法,以上兩步配合才能保證排除spring 預設使用的日誌框架

  1. 新增slf4j 與 logback依賴
        <!--<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 包含classic,core,access三個模組,classic和access依賴core模組,slf4j-api 也可以省略,因為classic 模組會依賴到

  1. 在classpath 根路徑下建立logback.xml 配置檔案
<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n
            </Pattern>
        </layout>
    </appender>

    <logger name="org.springframework" level="debug" additivity="false">
        <appender-ref ref="STDOUT" />
    </logger>
    

    <root level="debug">
        <appender-ref ref="STDOUT" />
    </root>

</configuration>

配置檔案的編寫,詳情參考網上資料,additivity=“false” 若指定為true,則會導致日誌重複輸出,

root level=“debug” 這個設定表示日誌的輸出級別

  1. 指定配置檔案
  • 加入依賴
        <dependency>
            <groupId>org.logback-extensions</groupId>
            <artifactId>logback-ext-spring</artifactId>
            <version>0.1.2</version>
        </dependency>
  • 在web.xml 檔案中加入監聽器和全域性引數設定
  <context-param>
    <param-name>logbackConfigLocation</param-name>
    <param-value>classpath:logback.xml</param-value>
  </context-param>
  
  <listener>
    <listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class>
  </listener>
  1. 使用
Logger logger = (Logger) LoggerFactory.getLogger(WorkerController.class);
logger.debug("測試logback");
logger.error("測試測試測試");

參考連結:

http://www.mkyong.com/spring-mvc/spring-mvc-logback-slf4j-example/

https://blog.csdn.net/sadfishsc/article/details/47160213