无法输出到控制台log4j 2日志

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

我正在尝试在我的自动化框架项目的控制台中获取日志输出。 我尝试使用不同的设置、依赖项和方法来做到这一点。

我正在使用java + maven + selenide。

我为 log4j 2 添加了这些依赖项

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

我创建了这个log4j2.properties文件:

# configuration syntax
status=error
dest=err
name=PropertiesConfig

# publish console logs
appender.console.type=Console
appender.console.name=STDOUT
appender.console.layout.type=PatternLayout
appender.console.layout.pattern=[%-5level] %d{DEFAULT} %c:%L - %m%n

# capture logs
logger.app.name=base
logger.app.level=debug
logger.app.additivity=false
logger.app.appenderRef.console.ref=STDOUT

# root logger
rootLogger.level=info
rootLogger.appenderRef.stdout.ref=STDOUT

我在 BaseTest.class 中创建了一个 Logger 实例

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

protected static Logger log = LogManager.getLogger();

现在我正在尝试通过控制台获取我的日志

log.info("some string")
在测试方法中。

但是没有与 log4j 2 相关的输出,并且控制台中没有与 log4j 2 相关的错误消息。

这可能是什么原因?

selenium-webdriver logging log4j log4j2 selenide
1个回答
0
投票

您使用什么应用程序服务器? Wildfly 使用 JBoss 日志记录,而 JBoss 日志记录又使用 slf4j。您必须提供 log4j-slf4j 作为绑定库才能使用 log4j2 进行日志记录。

尝试添加此依赖项:

    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
    </dependency>

根据您的实际设置,您可能还需要

    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-jcl</artifactId>
    </dependency>

    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
    </dependency>
© www.soinside.com 2019 - 2024. All rights reserved.