SLF4J和Log4J日誌的整合
阿新 • • 發佈:2022-04-03
日誌的作用
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("成功!!!"); } }