專案中使用springboot,需要用log4j2做日誌框架
專案啟動報錯:could not initialize log4j2 logging from classpath:log4j2-dev.yml
是乙個無法初始化log4j2配置的問題,專案中採用的yml的配置檔案。
首先引入依賴:
org.springframework.boot
spring-boot-starter-log4j2
去掉預設的logback配置:
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-logging
新增配置檔案:
配置logging.config
以上是整合操作的必要配置,配置完成啟動報錯。
根據異常資訊描述,找到原始碼中初始化的**:log4j2loggingsystem.loadconfiguration
繼續跟進:
發現是乙個抽象方法,idea中使用ctrl+alt+b查詢實現類:
因為使用的是yml,所以實現類應該是yamlconfig這個,找到具體實現:
通過debug發現isactive是false,所以返回null。在此類中找到isactive的含義:
這是關鍵的邏輯,原來回去檢查是否存在上面幾個依賴的類,除錯返現沒有yamlfactory這個類,可以看出這個類是jackson包中的,看來是少依賴了包。
引入jackson-dataformat-yaml依賴:
com.fasterxml.jackson.dataformat
jackson-dataformat-yaml
啟動正常,問題解決。 springboot快速整合log日誌,快速上手
ch.qos.logback logback classic 1.2.3 compile org.apache.logging.log4j log4j to slf4j 2.10.0 compile org.slf4j jul to slf4j 1.7.25 compile 在resources 新...
SpringBoot構建應用之整合Logback
一 依賴關係的梳理 當我們用idea簡單的構建乙個單體的應用時,所依賴的pom中其實已經有整合了logback的依賴 我們可以開啟pom.xml org.springframework.boot spring boot starter parent 2.1.7.release 點選進入spring ...
springboot日誌管理 整合log4j
sprongboot使用的預設日誌框架是logback。下面分別介紹自帶的日誌配置以及如何使用log4j來作為日誌管理。1 自帶日誌管理配置 配置日誌 logging.level.root info logging.level.org.springframework.web debug loggin...