Log4J文件未打印日志数据

时间:2019-10-10 10:21:25

标签: java selenium caching logging log4j

在我的Selenium框架中,我正在实现Log4J库以打印测试执行日志,但是application.log文件未打印任何日志。有人可以帮我看看我在做什么或为什么做错了吗

我正在执行以下操作:

1)我在pom.xml文件中添加了1.2.17 log4J依赖项 2)将log4j.properties文件添加到“ C:\ XXX \ IdeaProjects \ XXX \ AG_CEP_Regression_Testing \ src \ main \ resources \ log4j.properties

当我执行脚本时,它会生成日志文件,但不会打印日志数据,但我看到以下内容已经打印

2019-10-10 11:07:38,039 DEBUG [main] cache:45 - Couldn't find template in cache for "Extent.ftl"("en_GB", UTF-8, parsed); will try to load it.
2019-10-10 11:07:38,042 DEBUG [main] cache:45 - TemplateLoader.findTemplateSource("Extent_en_GB.ftl"): Not found
2019-10-10 11:07:38,043 DEBUG [main] cache:45 - TemplateLoader.findTemplateSource("Extent_en.ftl"): Not found
2019-10-10 11:07:38,044 DEBUG [main] cache:45 - TemplateLoader.findTemplateSource("Extent.ftl"): Found
2019-10-10 11:07:38,045 DEBUG [main] cache:45 - Loading template for "Extent.ftl"("en_GB", UTF-8, parsed) from "jar:file:/C:/XXX/.m2/repository/com/relevantcodes/extentreports/2.41.2/extentreports-2.41.2.jar!/com/relevantcodes/extentreports/view/Extent.ftl"
2019-10-10 11:07:38,314 DEBUG [main] cache:45 - Couldn't find template in cache for "Extent.ftl"("en_GB", UTF-8, parsed); will try to load it.
2019-10-10 11:07:38,315 DEBUG [main] cache:45 - TemplateLoader.findTemplateSource("Extent_en_GB.ftl"): Not found
2019-10-10 11:07:38,315 DEBUG [main] cache:45 - TemplateLoader.findTemplateSource("Extent_en.ftl"): Not found
2019-10-10 11:07:38,315 DEBUG [main] cache:45 - TemplateLoader.findTemplateSource("Extent.ftl"): Found
2019-10-10 11:07:38,316 DEBUG [main] cache:45 - Loading template for "Extent.ftl"("en_GB", UTF-8, parsed) from "jar:file:/C:/XXX/.m2/repository/com/relevantcodes/extentreports/2.41.2/extentreports-2.41.2.jar!/com/relevantcodes/extentreports/view/Extent.ftl"

这是我的log4J.properties文件内容:

log4j.rootCategory=debug, console, file
#log4j.logger.freemarker.cache = DEBUG, file, stdout
# Appender which writes to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{MM-dd-yyyy HH:mm:ss} %F %-5p [%t] %c{2} %L - %m%n

# Appender which writes to a file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=application.log

# Defining maximum size of a log file
log4j.appender.file.MaxFileSize=10mb 
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout  
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %5p [%t] %c{1}:%L - %m%n
log4j.appender.file.Append=true

这是我需要整合到框架中的最后工作,因此我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

我已经测试了您的配置,这是我的建议(因为我设法使其能够正常工作):

  1. 修复您的属性文件,因为在这里log4j.rootCategory=debug, console, file是指console附加程序,而在log4j.appender.stdout=org.apache.log4j.ConsoleAppender是您定义的stdout附加程序。这样行看起来像log4j.rootCategory=debug, stdout, file
  2. 确保在记录消息的地方导入porper Logger类。检查您使用的是import org.apache.log4j.Logger;,而不是import java.util.logging.Logger;或其他。
  3. 确保类路径中没有其他log4j配置文件

这是我的测试代码(假设属性文件已修复):

import java.util.logging.Logger;

public class TestLogging {

    static final Logger log = Logger.getLogger(TestLogging.class.getName());

    public static void main(String[] args) {
        log.info("Test");
    }

}

这是控制台输出:

10-10-2019 14:22:29 TestLogging.java INFO  [main] TestLogging 8 - Test

这是文件输出:

2019-10-10 14:22:29,447  INFO [main] TestLogging:8 - Test