gpt4 book ai didi

java - Log4j2 记录到文件和 IDE,但从 CLI 运行时不记录

转载 作者:行者123 更新时间:2023-11-28 20:51:43 24 4
gpt4 key购买 nike

我通常会尝试自己解决问题,而且大部分时间它都能正常工作,但我被这个问题困住了,所以请帮忙。这似乎是一件容易的事,但最终却是一件令人头疼的事。所以问题是从 CLI 运行 mvn test 时没有日志行输出到控制台。当我从 IDE 运行测试并且将日志写入文件时,在这两种情况下都可以正常工作。尝试了不同的东西,但总是得到相同的结果下面是我的 log4j 配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug" name="MainConfiguration">
<Properties>
<Property name="logFileDirectory">target/logs</Property>
</Properties>

<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss.SSS} [%t - %tid] %-5level %logger{36} - %msg%n"/>
</Console>

<RollingFile name="File" fileName="${logFileDirectory}/test.log"
filePattern="${logFileDirectory}/archive/logs/test_%d{yyyy-MM-dd_HH}.log">
<PatternLayout>
<pattern>%d{dd/MM/yyyy HH:mm:ss} %-5p [%t - %tid] [%c{1}] %m%n</pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy />
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="10 MB"/>
</Policies>
<DefaultRolloverStrategy max="20"/>
</RollingFile>
</Appenders>

<Loggers>
<Root level="debug">
<AppenderRef ref="File"/>
<AppenderRef ref="Console"/>
</Root>
</Loggers>

更新:lo4j2.xml 位于 src/main/resources 中。尝试在src/test/resources中添加一个log4j2-test.xml,但是结果没有变化。此外,我的所有代码都与测试相关,因此它位于 src/test/java 中。为了以防万一,这是我的 pom 中的两个依赖项:

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

谢谢!

最佳答案

好吧,我觉得自己很蠢,但无论如何......在反复检查 pom 和配置文件后,意识到 maven surefire 插件被配置为将测试输出重定向到文件。错过如此明显的事情,我唯一的安慰是我不是自己写的。但是,仍然浪费了很多时间……这是错误的地方:

        <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<parallel>classes</parallel>
<threadCount>10</threadCount>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
</configuration>
</plugin>

关于java - Log4j2 记录到文件和 IDE,但从 CLI 运行时不记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43865833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com