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

9rbhqvlz  于 9个月前  发布在  其他
关注(0)|答案(1)|浏览(140)

我试图在控制台中为我的自动化框架项目获取日志输出。我试图使用不同的设置,依赖项和方法来完成。
我用的是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相关的错误消息。
可能的原因是什么?

yruzcnhs

yruzcnhs1#

你使用的是什么应用服务器?Wildfly使用JBoss日志记录,而JBoss日志记录又使用slf 4j。你必须提供log4j-slf 4j作为绑定库来使用log4j 2进行日志记录。
尝试添加此依赖项:

<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>

相关问题