Log4j的简单使用

本文最后更新于:1 年前

Log4j 简介

Log4J 是 Apache 的一个开源项目。通过在项目中使用 Log4J,我们可以控制日志信息输出到控制台、文件、GUI 组件、甚至是数据库中。我们可以控制每一条日志的输出格式,通过定义日志的输出级别,可以更灵活的控制日志的输出过程。方便项目的调试。

官网:https://logging.apache.org/log4j/2.x/

三大组件

Log4J 主要由 Logger (日志记录器)、Appender(输出端)和 Layou(日志格式化器)组成。

  • Logger

    控制日志的输出级别与日志是否输出;

  • Appender

    指定日志的输出方式(ConsoleAppender控制台、FileAppender文件、JDBCAppender等);

  • Layout

    控制日志信息的输出格式( simple格式、HTML格式、PatternLayout 自定义格式 )。

日志级别

  • Log4J 在 org.apache.log4j.Level 类中定义了 OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL 八种日志级别。

  • 一般只使用 4 个级别,优先级从高到低为 ERROR > WARN > INFO > DEBUG。

    目录 说明
    ERROR 发生错误事件,但仍不影响系统的继续运行
    WARN 警告,即潜在的错误情形
    INFO 一般在粗粒度级别上,强调应用程序的运行全程
    DEBUG 一般用于细粒度级别上,对调试应用程序非常有帮助

配置方法

内容说明

只需要在项目路径下新建 log4j.properties 配置文件,并配置日志的输出格式等信息,Log4J 框架会自动的加载配置文件,并将配置信息设置到 Logger 中。

1
2
3
4
5
6
# 控制台输出配置
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %p [%c] - %m%n
#指定日志的输出级别与输出端
log4j.rootLogger=DEBUG,Console

IDE中配置

  1. 项目中引入 log4j 的 jar 包

    引入 hadoop 的 jar 时,会自动引入 log4j.properties 的 jar 包。

  2. 添加配置文件 log4j.properties

    手动引入,Idea 中是将写好的 log4j.properties 文件放在 src/main/resources 目录下,Eclipes 直接添加到 src 目录下即可。

使用展示

1
2
3
4
5
6
7
8
9
10
11
public class Log4jTest {
public static void main(String[] args) {
//创建 Log4j 实例,得到本类专属的日志记录器
Logger logger = Logger.getLogger(Log4jTest.class);
logger.debug("这是debug");
logger.info("这是info");
logger.warn("这是warn");
logger.error("这是error");
logger.fatal("这是fatal");
}
}

DEBUG 级别

image-20211125232852112

INFO 级别

WARN 级别

MyBatis中日志配置

MyBatis做为一个封装好的ORM框架,其运行过程我们没办法跟踪,为了让开发者了解MyBatis执行流程及每个执行步骤所完成的工作,MyBatis框架本身支持log4j日志框架,对运行的过程进行跟踪记录。我们只需对MyBatis进行相关的日志配置,就可以看到MyBatis运行过程中的日志信息。

1. 添加日志框架依赖

1
2
3
4
5
6
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>

2. 添加日志配置文件

在 resources 目录下创建名为 log4j.properties 文件, log4j.properties文件配置日志输出的方式。

1
2
3
4
5
6
7
8
9
# 声明日志的输出级别及输出方式
log4j.rootLogger=DEBUG,stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# 定义日志的打印格式 %t 表示线程名称 %5p 日志级别 %msg日志信息
log4j.appender.stdout.layout.ConversionPattern=[%t] %5p - %msg \:%m%n


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!