当前位置: 首页 > 知识库问答 >
问题:

Log4j-在日志文件中打印测试用例名称

朱皓
2023-03-14

我有一个java项目,它使用log4j作为记录器。要求在日志文件中打印测试用例名称。

一个类中有多个测试,该项目也支持并行执行。为每个测试创建一个记录器实例。

我使用system. Setproprty将我当前的记录器实例与测试用例名称相关联。以下是我的log4j.properties文件:-

log4j.appender.logFileAppender.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} [%t] ${testCaseName} %5p (%F:%L) - %m%n
log4j.appender.logFileAppender.Append=false
log4j.appender.logFileAppender.file=./log/UITest.log

并在创建logger文件的新实例时设置运行时变量${testCaseName},如下所示:-

public Logger log; 
public synchronized Logger initializeLogger(String testName) 
    { 
    log = LoggerFactory.getLogger(testName);      
    System.setProperty("testCaseName", testName);             
    PropertyConfigurator.configure(html" target="_blank">log4jPropertiesFilePath); 
    return log; 
    } 

上面的looger实例创建方法在@BeforeMethod中调用。

当前,记录器文件正在打印类中最后一个测试的测试名称(在非并行ans并行执行模式下)

请帮助我确定多个测试用例没有在日志文件中打印其测试用例名称的问题。

共有1个答案

容寒
2023-03-14

尝试将此添加到测试中

  @Rule 
  public TestName testName = new TestName();

  @Before 
  public void printTestName() {
     System.out.println("Running ==> " + testName.getMethodName()); 
  }
 类似资料:
  • 问题内容: 我们有几个同时运行的作业,它们必须为log4j使用相同的配置信息。他们都使用相同的附加程序将日志转储到一个文件中。有没有一种方法可以让每个作业动态命名其日志文件,以使它们保持独立? 谢谢 汤姆 问题答案: 您可以为每个作业传递Java系统属性吗?如果是这样,您可以像这样进行参数化: 然后在您的log4j.properties中: 您可以使用主机环境(例如)中的值填充Java系统属性,该

  • 当我在Wildfly10上部署war时,Log4j日志不会打印。1.0.最终的不过,它与Tomcat配合得很好。 我在网上发现Wildfly使用log4j,所以我在jboss部署结构中排除了log4j。下面的xml避免了依赖冲突,但没有运气。 下面是我log4.properties档案 下面是我的pom。xml依赖关系 下面是我部署战争时得到的错误日志。 我正在尝试运行独立的完整ha。xml

  • 环境:Java、Selenium webdriver、Maven、testNG、Log4J、Eclipse XML 我添加了log4j。src/main/resources下的属性。 在基本测试中。java,我在导入log4j后添加了两行。 日志信息(“方法设置”); 日志信息(“方法拆除”); 我的目标是能够使用日志。了解整个项目。在此之前,我只想通过在basetest类中导入log4j log

  • 问题内容: 是否有可能在运行时使用MDC命名日志文件。 我有一个单独的Web应用程序,该应用程序同时使用tomcat docbase被不同的名称调用。因此,我需要为每个文件设置单独的日志文件。 问题答案: 这可以在Logback(Log4J的后继者)中完成。 Logback旨在作为流行的log4j项目的后继者,从log4j离开的地方接手。 请参阅文档筛选器 SiftingAppender在引用和配

  • 问题内容: 这个问题的一个子集此。我希望每天使用以下日志文​​件名格式创建一个日志文件: 使用,但根本不创建日志文件。 我的lo4j.xml看起来像这样: 问题答案: 直到午夜后的某个时间记录了第一条消息后,使用log4j附带的发货才重命名日志文件。 您可以尝试使用,可以从此处下载。与相反,它将创建日志文件,其文件名始终包含今天的日期。

  • 问题内容: 在IDE中进行开发时,跟踪和调试日志可能会有所帮助,但是在构建期间,我发现这些行非常令人不安,并且混淆了maven或其他构建工具打印的报告。 让log4j尊重系统属性(如1)以与maven一起使用或不需要对项目文件进行更改的东西会很好。我知道我可以指定 2,但我想在这里询问是否有人在构建过程中找到了一种更智能的方法来禁用日志记录,而手动干预最少。即,一些将maven检测为调用方的jav