springboot整合log4j2遇到的乙個坑

2022-07-22 07:03:14 字數 1541 閱讀 1887

專案中使用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...