1. 程式人生 > >maven工程 slf4j和log4j配合使用

maven工程 slf4j和log4j配合使用

使用slf4j的優點:

提供帶引數的日誌輸出方法(SLF4J 1.7及以後版本)。

pom中只需引入slf4j-log4j12,然後maven會引入它所依賴的其它JAR包。

1.在pom檔案中新增程式碼

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

 

2.新增log4j配置檔案log4j.properties(編碼為GBK中文輸出不亂)

# DEBUG,INFO,WARN,ERROR,FATAL
LOG_LEVEL=INFO

log4j.rootLogger=${LOG_LEVEL},CONSOLE,FILE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Encoding=GBK
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
#log4j.appender.CONSOLE.layout.ConversionPattern
=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %C{8}@(%F:%L):%m%n log4j.appender.CONSOLE.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %C{1}@(%F:%L):%m%n log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender log4j.appender.FILE.File=${catalina.base}/logs/workorder.log log4j.appender.FILE.Encoding
=GBK log4j.appender.FILE.DatePattern='.'yyyy-MM-dd log4j.appender.FILE.layout=org.apache.log4j.PatternLayout #log4j.appender.FILE.layout=org.apache.log4j.HTMLLayout log4j.appender.FILE.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} %C{8}@(%F\:%L)\:%m%n

 

3.在web.xml中配置log4j

 

  
     <!-- 配置log4j配置檔案路徑 -->
    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>WEB-INF/config/log4j.properties</param-value>
    </context-param>
    <!-- 60s 檢測日誌配置 檔案變化 -->
    <context-param>
        <param-name>log4jRefreshInterval</param-name>
        <param-value>60000</param-value>
    </context-param>

    <!-- 配置Log4j監聽器 -->
    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>

 

 

在使用的時候需要引入

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory;

 

然後例項化

 

 需要列印日誌的地方

logger.info("當前狀態{}", "收到列表請求,並進入");

  執行效果 

當不需要使用log4j 用回java的loggin的時候,

在pom.xml中進行如下修改,重新部署即可

 

輸出風格又回來了