1. 程式人生 > 其它 >SLF4J和Log4J日誌的整合

SLF4J和Log4J日誌的整合

日誌的作用

1,監控程式碼中變數的變化情況。
2,跟蹤程式碼中的執行軌跡,日後可以做程式碼審計
3,充當開發時的偵錯程式,列印除錯資訊。

Log4j的三個重要元件

Logger:負責生成日誌,並能夠對日誌進行分類篩選,通俗的說就是確定什麼日誌輸出,什麼日誌忽略。
Appender:定義日誌的輸出地方
Layout:日誌的輸出格式。
這三個元件配合工作,可以控制日誌的格式,輸出級別,輸出地方。

SLF4J和Log4J的整合

SLF4J(simple logging Facade for java)由高到低分為6個日誌等級:
  TRACE,DEBUG,INFO,WARN,ERROR,和FATAL
SLF4J為日誌的輸出提供的簡單的實現,但是需要實現負責的功能,需要實現其他的日誌軟體包。

SLF4J API,需要的jar包:slf4j-api.jar(必須)
    NOP介面卡--->NOP API:什麼都不做,沒有任何的日誌輸出
    Simple介面卡--->Simple API:SLF4J自帶
    Log4j介面卡--->Log4j API:可以把日誌輸出到控制檯,檔案,遠端等(slf4j-log4j12.jar可選,整合log4j1.2)
    JDK 1.4介面卡--->JDK 1.4 API
    JCL介面卡--->JCL API

因為是SLF4J和Log4J日誌的整合,所有需要3個jar包:
    slf4j-api-1.7.26.jar
    slf4j-log4j12-1.7.26.jar(此包用於整合)
    log4j-1.2.17.jar

log4j的日誌配置

#指定日誌的根輸出目標為A1,A2 日誌級別為INFO
log4j.rootLogger=INFO,A1,A2

#輸出到A1控制檯
log4j.appender.A1=org.apache.log4j.ConsoleAppender
#指定A1的輸出格式
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPatten=%p [%t] %c{2}{%M:%L}-%m %n

#輸出到A1控制檯
log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.A2.File=D://log.txt
#指定A1的輸出格式
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPatten=%p [%t] %c{2}{%M:%L}-%m %n

SLF4J和Log4J的整合在springmvc中的實現

@Controller
@RequestMapping("/demo")
public class AController {
    private static final Logger logger = LoggerFactory.getLogger(AController.class);

    @GetMapping("/testA")
    public void testA(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("aaaa");
        logger.trace("trace日誌");
        logger.debug("debug日誌");
        logger.info("info日誌");
        logger.warn("warn日誌");
        logger.error("error日誌");

        response.getWriter().println("成功!!!");
    }
}