gpt4 book ai didi

java - 运行 Junit 测试时,为什么日志消息没有写入我的日志文件?

转载 作者:太空宇宙 更新时间:2023-11-04 11:20:14 26 4
gpt4 key购买 nike

我有一个类 Store,其中包含诸如“log.info(...)”之类的语句。我可以看到日志消息以及运行程序时创建的日志文件。但是,当我运行 JUnit 测试时,不会创建日志文件,但我仍然想查看日志消息。记录器是:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

还有我的 log4j 属性:

log4j.rootLogger=DEBUG, STDOUT, file

log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=mylogs.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss} %-5p %c{1}:%L - %m%n

问题是,在运行 Junit 测试时如何创建日志文件和日志消息?

编辑:

部分测试日志属性:

log4j.rootLogger=ERROR, Console
log4j.logger.play=DEBUG
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p ~ %m%n

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=testlog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss} %-5p %c{1}:%L - %m%n

最佳答案

根据该配置,您可能希望在项目的根目录中有一个 teSTLog.log 文件。

尽管如此,file 附加程序并未被引用,因此消息将仅使用Console 附加程序进行记录。但是,您的 rootLogger 设置为 ERROR 级别,因此低于此级别的消息,例如 DEBUGINFOWARN 将被丢弃。

您可以更改您的 rootLogger 配置(所有非显式配置的记录器都会继承该配置),就像在其他 log4j.properties 中一样,或者为您的包定义一个记录器,将其设置为 DEBUG(或您想要的任何级别)并使用两个附加项:log4j.logger.my.package.here=DEBUG、控制台、文件

进一步阅读资源: -log4j v1.2 into -log4j 1.2 configuration

P.S.:请注意,有时 Eclipse 会出现文件系统更改问题,并且不会自动更新项目文件。如果发生这种情况。运行测试后,尝试在 Navigator View 中右键单击您的项目,然后选择刷新,然后滚动到 pom 所在的末尾。或者打开您选择的文件资源管理器,转到磁盘上的项目根目录,您应该会看到 teSTLog.log 文件。

关于java - 运行 Junit 测试时,为什么日志消息没有写入我的日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44999032/

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