日志级别配置
今天重构项目,重新开始搭建,在项目启动时希望输出info日志,结果发现日志无法输出,因此引出此篇文章,权做记录与分享。
1. 配置依赖
首先,pom配置中增加依赖:
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.0</version>
</dependency>
本次研究都是基于这个版本的包开展的。我们知道基于log4j衍生了很多日志的包,每个包使用的方式不太一样,如果不用这个包,那么本片的经验可能毫无用处,因此大家见仁见智。使用这个包的好处是,这个包中的日志类可以直接使用,不需要提前额外配置,上手以及搭建项目非常快,缺点是日志级别非常难改,因此是一个适合学习日志的硬骨头。
2. 基本使用
比如我在Main.java
中要使用日志类,那么添加代码:
private static final Logger LOG = LogManager.getLogger(Main.class);
这边可能和其他的包不同的地方是,这边用的是LogManager
而不是LoggerFactory
。
需要输出日志时,直接调用方法:
String msg = "Here is my message";
// info级别
LOG.info(msg);
// warn级别
LOG.wan(msg);
// debug级别
LOG.debug(msg);
// trace级别
LOG.trace(msg);
// error级别
LOG.error(msg);
// fatal级别
LOG.fatal(msg);
// 自选级别
LOG.log(Level, msg);
3. 遇到问题
我这边想要在项目启动时输出一些配置的日志,配置的日志如果使用ERROR级别很明显非常离谱,因此使用INFO级别将日志进行输出。于是我这边代码时这么写的:
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public