[英]How can I replace the default logging system in spring boot 2.0
我打算將 slf4j 實現(公司中基於 logback 的框架)集成到 spring boot 2.0 中。 在我的進度中,我發現默認的 logback 依賴項與我自己的依賴項沖突。 以這種方式排除spring-boot-starter-logging
模塊:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
沖突的錯誤消失了,但似乎 spring boot 之前使用我的庫作為 slf4j 日志記錄實現,我的自定義函數中沒有任何內容。
我想知道是否有一種方法可以用我的代碼替換日志記錄系統以使其工作,但在 spring.io 網站上找不到關於此的參考。
要禁用默認為 LogbackLoggingSystem 的 Spring Boot 的 LoggingSystem,您需要設置以下系統屬性
-Dorg.springframework.boot.logging.LoggingSystem=none
這是在https://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html和https://docs.spring.io/spring-boot/docs/current/reference /html/boot-features-logging.html供參考。
錯誤
Exception in thread "main" java.lang.StackOverflowError
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
由 log4j-sl4j-impl 和 log4j-to-sl4j 的調用循環生成。
您可以解決排除 log4j-to-slf4j:
configurations {
all*.exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j'
}
移除 Spring-boot-starter-web 項目中的登錄默認依賴
dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
我們需要在類路徑中放置一個類似於以下屬性文件之一的文件並重新啟動項目
您只提供了 pom.xml 文件的一部分。 問題可能在於,可能存在從其他依賴項回滾的傳遞依賴項。 因此,您也必須在該依賴項中進行與 spring-boot-starter 相同的排除。 現在為了知道哪些依賴項具有這種傳遞性,您可以打印 pom.xml 文件的依賴項樹。 為此,請轉到包含 pom.xml 的文件夾。 打開命令提示符。 並輸入mvn dependency: tree 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.