背景:
spark1.6以前的版本默认是log4j+slf4j的方案来做日志, 在我们实际开发项目的过程中大多数是使用logback+slf4j的方案来做日志。
配置方法:
1. logbak+slf4j 项目中 java类里面的代码的写法和 log4j+slf4j的 代码写法完全一模一样的
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*这个类提供了一些根据类的class文件位置来定位的方法。
*
* @version 1.0 2011-4-27 上午12:40:08
* @since 1.0
*/
public class ClassLoaderUtil{
private final static Logger log = LoggerFactory.getLogger(ClassLoaderUtil.class);
slf4j的切面日志功能功不可没,代码中可以忽略logback或者 log4j 的存在
2. 去掉 maven pom.xml 所有直接/间接的 log4j 依赖
比如
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>${spark.version}</version>
<!-- spark默认使用log4j,我们需要使用logback,所以将讲spark的log4j依赖进行移除-->
<exclusions>
<exclusion>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
3. 去掉 maven pom.xml 所有直接/间接的 slf4j-log4j12 依赖
如上面的 exclusion
4. 增加 logback 依赖
<!--******** logback and slf4j ******** -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${version.logback}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${version.logback}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
<version>${version.logback}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${version.slf4j}</version>
</dependency>
<!--jul桥接 用来输出 Java Logging Framework (JUL) -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>${version.slf4j}</version>
</dependency>
<!-- jcl桥接,用来输出 第三方Jakarta Commons Logging (JCL) -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${version.slf4j}</version>
</dependency>

本文介绍了如何在Spark项目中将日志框架从log4j+slf4j替换为logback+slf4j。主要步骤包括:保持java类中使用slf4j的代码不变,移除pom.xml中所有log4j及其slf4j-log4j12依赖,然后添加logback依赖。
1496

被折叠的 条评论
为什么被折叠?



