整合日志框架
Ⅰ 前言
Spring 基础文章回顾:
【Java Web】-> Spring 5 -> Spring 的下载 & 第一个样例
【Java Web】 -> Spring 5 -> IOC 底层原理
【Java Web】 -> Spring 5 ->IOC 操作 -> Bean 管理 ->关于 IOC 的一切就在这里了
【Java Web】-> Spring 5 -> JdbcTemplate
【Java Web】 -> Spring 5 -> Spring TX -> 详解事务管理
Spring 5 框架自带了通用的日志封装,它移除了 Log4jConfigListener
,官方建议使用 Log4j2
。
这篇文章将讲解如何整合 Log4j2
框架。
Ⅱ 整合 Log4j2
首先我们需要引入四个 jar 包:
对应的 Maven pom文件如下:
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.12.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.12.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.12.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
我们需要创建一个 log4j2.xml 的配置文件。注意这个名字是不可以更改的。
log4j2.xml 的模板我直接贴上,基于这个模板我们可以对日志再做配置。
<?xml version="1.0" encoding="utf-8" ?>
<!--日志级别以及优先级排序:OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL-->
<!--Configuration后面的status用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,可以看到log4j2内部各种详细输出-->
<configuration status="INFO">
<!--先定义所有的appender-->
<appenders>
<!--输出日志信息到控制台-->
<console name="Console" target="SYSTEM_OUT">
<!--控制日志输出的格式-->
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</console>
</appenders>
<!--然后定义logger,只有定义了logger并引入appender,appender才会生效-->
<!--root: 用于制定项目的根日志,如果没有单独指定Logger,则会使用root作为默认的日志输出-->
<loggers>
<root level="info">
<appender-ref ref="Console"/>
</root>
</loggers>
</configuration>
用我 Spring-TX 中的代码做例子,实验一下日志。
结果如下,可以看到控制台输出了一行日志,就是我们在 xml 文件中配置的格式。
在这个配置中我们设置的级别是 INFO
现在我们提高一个级别,设置成 DEBUG,这样就能看到更多的信息了。
除此之外,我们还可以手动输出一下日志。
比如我们现在创建一个类, UserLog
。写一个成员 Logger
,注意它是 org.slf4j
包下的。
然后我们可以创建一个 main 方法。
这个类有许多方法可以输出。我们输出一个 info 一个 warn。
运行一下,可以看到我们的信息被输出了: