log日志使用及沖突解決

1 日志使用規(guī)范

應(yīng)用中不應(yīng)該直接使用日志系統(tǒng)(Log4j,Logback)中的API,而應(yīng)該依賴使用日志框架SLF4J中的API,使用門面模式的日志框架,有利于維護(hù)和各個(gè)類的日志處理方式統(tǒng)一


import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

private static final Logger logger = LoggerFactory.getLogger(Aoe.class);

2?日志配置統(tǒng)一版本

<properties>

<log4j2.version>2.8.2</log4j2.version>

</properties>

3?log4j適配log4j2框架

3.1??排除所有直接間接依賴的log4j的包

因?yàn)椴荒鼙WClog4jxxx.jar在log4j-1.2-api之后執(zhí)行,不排除會(huì)導(dǎo)致log4j的日志不能輸出。

<exclusions>

?<exclusion>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

</exclusion>

</exclusions>

3.2?Log4j2的jar包版本要統(tǒng)一

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-api</artifactId>

<version>${log4j2.version}</version>

</dependency>

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-core</artifactId>

<version>${log4j2.version}</version>

</dependency>

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-jcl</artifactId>

<version>${log4j2.version}</version>

</dependency>

3.3?Log4j適配log4j2的jar包與log4j2的jar包版本一致

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-1.2-api</artifactId>

<version>${log4j2.version}</version>

</dependency>

4?slf4j+log4j2

使用SLF4j+Log4j2時(shí)使用的橋接包是log4j-slf4j-impl

jar包版本同log4j2的版本

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-slf4j-impl</artifactId>

<version>${log4j2.version}</version>

</dependency>

5?其他需要排除的包

<exclusions>

<exclusion>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

</exclusion>

??</exclusions>

<exclusions>

<exclusion>

<groupId>ch.qos.logback</groupId>

<artifactId>logback-classic</artifactId>

</exclusion>

</exclusions>

<exclusions>

<exclusion>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-1.2-api</artifactId>

</exclusion>

<exclusion>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

</exclusion>

</exclusions>

6?常見錯(cuò)誤原因定位

6.1?SLF4J: Class path contains multiple SLF4J bindings.

slf4j-log4j12包沖突,排除即可

6.2?找不到log的配置文件

a)Log日志的配置文件log4j.xml查看是否存在

b)自定義log配置文件ConfigurationSource,注意這之前不要有日志的初始化及使用

7?其他常見的log相關(guān)包說(shuō)明

7.1?slf4j-log4j12

slf4j與log4j的橋接包

7.2?slf4j-jdk14

slf4j到j(luò)ava.util.logging的橋接包

7.3?log4j-to-slf4j

將log4j2的接口適配到slf4j上,不能和log4j-slf4j-impl同時(shí)存在

7.4 slf4j-jcl

將slf4j適配到JCL上

7.5?Logback

Logback是由log4j創(chuàng)始人設(shè)計(jì)的另一個(gè)開源日志組件,詳細(xì)見官網(wǎng) http://logback.qos.ch

7.6?logback-classic

將slf4j適配到logback上

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容