log4j2log4j2入门


备注

本节概述了log4j2是什么,以及开发人员可能想要使用它的原因。

它还应该提到log4j2中的任何大型主题,并链接到相关主题。由于log4j2的文档是新的,您可能需要创建这些相关主题的初始版本。

为什么不Log4j 1.x?

Log4j 1.x截止到2015年8月5日。[1] [2]。 Apache Log4j 2是Log4j 1.x的后续版本;为依赖于Log4j 1.x的项目提供绑定,但希望升级到Log4j 2.除了兼容Log4j 1.x之外,还为SLF4J,Commons Logging和java.util.logging API提供了兼容性。

[1] https://logging.apache.org/log4j/1.2/
[2] https://blogs.apache.org/foundation/entry/apache_logging_services_project_announces

安装或设置

这将是一个基本设置,我们将所有日志消息发送到控制台和日志文件。

让我们从库开始吧。将使用maven:

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.8.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.8.2</version>
    </dependency>
 

接下来我们将编写log4j2.properties(在这种情况下我将使用属性文件)。我们将它放在上下文路径中,在maven中它应该在resources文件夹中(大多数情况下是src / main / resources)

name=PropertiesConfig
property.filename = logs
appenders = console, file

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

appender.file.type = File
appender.file.name = LOGFILE
appender.file.fileName=${filename}/propertieslogs.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

loggers=file
logger.file.name=com.es.form.studio
logger.file.level = debug
logger.file.appenderRefs = file
logger.file.appenderRef.file.ref = LOGFILE

rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
 

要使用此示例,您需要更改logger.file.name = com.es.form.studio,以便它以您选择的包为目标。如果不这样做,文件将不会显示任何日志。