log日志使用及冲突解决

1 日志使用规范

应用中不应该直接使用日志系统(Log4j,Logback)中的API,而应该依赖使用日志框架SLF4J中的API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一


import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

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

日志配置统一版本

2.8.2

log4j适配log4j2框架

3.1  排除所有直接间接依赖的log4j的包

因为不能保证log4jxxx.jar在log4j-1.2-api之后执行,不排除会导致log4j的日志不能输出。

 

log4j

log4j

3.2 Log4j2的jar包版本要统一

org.apache.logging.log4j

log4j-api

${log4j2.version}

org.apache.logging.log4j

log4j-core

${log4j2.version}

org.apache.logging.log4j

log4j-jcl

${log4j2.version}

3.3 Log4j适配log4j2的jar包与log4j2的jar包版本一致

org.apache.logging.log4j

log4j-1.2-api

${log4j2.version}

slf4j+log4j2

使用SLF4j+Log4j2时使用的桥接包是log4j-slf4j-impl

jar包版本同log4j2的版本

org.apache.logging.log4j

log4j-slf4j-impl

${log4j2.version}

其他需要排除的包

org.slf4j

slf4j-log4j12

  

ch.qos.logback

logback-classic

org.apache.logging.log4j

log4j-1.2-api

log4j

log4j

常见错误原因定位

6.1 SLF4J: Class path contains multiple SLF4J bindings.

slf4j-log4j12包冲突,排除即可

6.2 找不到log的配置文件

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

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

其他常见的log相关包说明

7.1 slf4j-log4j12

slf4j与log4j的桥接包

7.2 slf4j-jdk14

slf4j到java.util.logging的桥接包

7.3 log4j-to-slf4j

将log4j2的接口适配到slf4j上,不能和log4j-slf4j-impl同时存在

7.4 slf4j-jcl

将slf4j适配到JCL上

7.5 Logback

Logback是由log4j创始人设计的另一个开源日志组件,详细见官网 http://logback.qos.ch

7.6 logback-classic

将slf4j适配到logback上

你可能感兴趣的:(log日志使用及冲突解决)