log4j - log4j 核心更新

问题描述 投票:0回答:2

我已将 log4j 版本从 1.2.17 更新到 log4j-core-2.17.1,这是为了修复 log4jshell 漏洞。

在构建代码时,我收到找不到 PatternLayout 和 ConsoleAppender 错误消息。

war 文件中不应该有除 log4j-core-2.17.1 之外的其他任何 log4j 版本,因此我在 pom.xml 文件的 slf4j 依赖项中排除了 lo4j

请知道如何修复此错误。

代码片段

import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.ConsoleAppender;
import org.apache.logging.log4j.PatternLayout;

import jxl.common.Logger;

public class Booking {

    static Logger logger = Logger.getLogger(Booking.class);

    public static boolean isChecked(String[] includeProps) {

        logger.info("Start of method");
    return true;

    }

}

pom.xml

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

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

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-log4j12</artifactId>
   <version>1.7.36</version>
   <exclusions>
   <exclusion>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
   <exclusion>
   </exclusions>
</dependency>

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-api</artifactId>
   <version>1.7.36</version>
</dependency>

log4j.properties

log4j.rootLogger=INFO,stdout
log4j.logger.requestLogger=debug, requestAppender
log4j.additivity.requestLogger=false
log4j.appender.stdout=org.apache.log4j.FileAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.File=/apps/opt/logs/App.log
log4j.appender.stdout.layout.ConversionPattern=%d [%24F:%t:%L] - %m%n

错误信息

cannot find symbol
[ERROR] symbol: class PatternLayout

cannot find symbol
[ERROR] symbol: class ConsoleAppender

[ERROR] symbol: class variable Logger
java maven logging log4j
2个回答
1
投票

按如下方式更改您的导入:

import org.apache.logging.log4j.core.Logger;
import org.apache.logging.log4j.core.appender.ConsoleAppender;
import org.apache.logging.log4j.core.layout.PatternLayout;

这是因为 log4j 2.x.x 版本的结构发生了重大变化。


0
投票

嘿,你是如何更新log4j的,你能在这里提到这个过程吗?

© www.soinside.com 2019 - 2024. All rights reserved.