Log4j2与SLF4J配置

2,161 阅读1分钟

学习用SLF4JAPIs配置Log4j2日志。我们将了解所需的依赖性、样本配置和使用日志语句的演示。

阅读更多。SLF4j Vs Log4j - 哪一个更好?

1.Log4j2和SLF4j的绑定依赖关系

为了使Log4j2与SLF4J一起工作,我们需要包括以下3个依赖项。点击各自的链接来获取每个人的最新版本。

  • log4j-slf4j-impl.jar- Log4j 2 SLF4J绑定。它允许根据SLF4J API编码的应用程序使用Log4j2作为实现。
  • log4j-api.jar- 为实现者提供创建日志实现所需的适配器组件。
  • log4j-core.jar- 核心Log4j实现类。

Maven和Gradle的依赖关系可以复制如下。

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.15.0</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.15.0</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.15.0</version>
</dependency>
dependencies {
  compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.15.0'
  compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.15.0'
  compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.15.0'
}

2.日志配置

接下来是提供*log4j2.propertieslog4j2.xml*或log4j2.json文件,这些文件将配置所需的日志器和应用者。把配置文件放在resources 文件夹或应用程序classpath中。所有的日志语句将使用这些日志记录器。

我们以XML配置为例,为演示目的使用控制台日志。你也可以使用其他有用的日志模式之一。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
    <Properties>
        <Property name="LOG_PATTERN">%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1} - %m%n</Property>
    </Properties>
 
    <Appenders>
        <Console name="console" target="SYSTEM_OUT" follow="true">
            <PatternLayout pattern="${LOG_PATTERN}"/>
        </Console>
    </Appenders>
 
    <Loggers>
        <Root level="info">
            <AppenderRef ref="console"/>
        </Root>
    </Loggers>
</Configuration>

3.演示

在应用程序代码中用LoggerLoggerFactory类编写日志语句。这两个类都来自包org.slf4j

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Main {
  public static void main(final String[] args)
  {
      Logger logger = LoggerFactory.getLogger(Main.class);
      logger.info("Hello World !!");
  }
}

运行main()方法并观察控制台中的输出。

2021-12-13 22:08:14 INFO  Main - Hello World !!

这就是log4j2与slf4j配置例子的全部内容。

祝你学习愉快!!

下载源代码