首先我这里使用的是org.slf4j 的LOGGER
在项目中引用
private static final Logger LOGGER = LoggerFactory.getLogger(Test.class);
maven依赖
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
首先看一下重载的方法
我感觉用的比较多的是 1,3,9对应的方法
如果在try catch 中捕获异常,是不会打印异常信息的,这时候日志就显得极为重要了,可以通过方法的重载打印出不同种类的日志
举个栗子
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author gaozhuang
* @date 2021/11/19 11:10 上午
*/
public class Test {
private static final Logger LOGGER = LoggerFactory.getLogger(Test.class);
public static void main(String[] args) {
try{
//在这里抛出个空指针异常
Integer nullInt = Integer.valueOf(null);
}catch (Exception e){
// 直接打印,则只输出异常类型(调用方法一,传入String)
LOGGER.error(String.valueOf(e));
// 使用字符串拼接(在这里其实都是调用的传入String),可以通过字符拼接打印出自己想打印的
//因为e是个Exception 类 ,在 + 的时候会调用toString 方法
LOGGER.error("使用 + 号连接直接输出 e : " + e);
// 尝试使用分隔符,第二个参数为Object,会发现分隔符起作用了,根据第二个参数的不同类型,调用不同的重载方法
// 常用的 int String 类型的错误会拼接到 {} 里面
LOGGER.error("第二个参数为Object,使用分隔符打印 {} ",123);
// 使用逗号分隔,调用两个参数的error方法(在这里调用的9),会打印出完整的错误信息,不会拼接到{}里
LOGGER.error("使用 , 号 使第二个参数作为Throwable : ", e);
// 尝试使用分隔符,第二个参数为Throwable,会发现分隔符没有起作用,第二个参数的不同据,调用不同的重载方法
LOGGER.error("第二个参数为Throwable,使用分隔符打印 {} : ", e);
}
}
}
看一下打印结果吧