gpt4 book ai didi

java - log4j 结构化以实现一致的日志记录

转载 作者:行者123 更新时间:2023-12-01 10:50:57 28 4
gpt4 key购买 nike

我正在尝试为 MyTest 类实现 log4j 日志记录。代码的包结构如使用下面的代码所述。目前我的log4j.properties放在Trial包的资源下。

enter image description here

我有时确实会收到日志,但有时调试器会显示“log4j:WARN 无法找到记录器的附加程序。”所以我最终得到:

  1. 我应该将 log4j.properties 放在哪里才能在 MyTest 中一致地获取日志?
  2. 同一项目可以在不同包中拥有多个 log4j.properties 吗?
  3. 调试器/编译器的 log4j 属性如何与调用它的类关联?

BasicPage.class

package com.trial.pages;
public class BasicPage{
protected static final Logger pageLogger = Logger.getLogger(BasicPage.class);
<some code goes here>
}
<小时/>

FirstPage.class

package com.trial.pages.mobile;
import package com.trial.pages;
public class FirstPage extends BasicPage {
public void pageMethod() {
pageLogger.info("These are logs from the Pages.");
}
}
<小时/>

BasicTest.class

package com.core.data;
public class BasicTest{
protected static final Logger testLogger = Logger.getLogger(BasicTest.class);
<some code goes here>
}
<小时/>

MyTest.class

package com.trial.tests.mobile;
import com.trial.pages.mobile.FirstPage;
import com.core.data.BasicTest;
public class MyTest extends BasicTest{
public void someMethod(){
testLogger.info("These are the logs from the test activities.");
new FirstPage.pageMethod();
}
}

最佳答案

  1. Where should I place the log4j.properties to get the logs consistently in MyTest?

一般只需将 log4j.xml 文件放入 src/main/resourcessrc/test/resources 中,让 log4j 自己找到它:不需要任何代码,默认 log4j 初始化将拾取它。

2.Can the same project have more than one log4j.properties in different packages?

我不会这样做,因为类加载器只采用找到的第一个类加载器。您可以在单个属性文件中为不同的记录器进行多个配置。

log4j-properties-file-multiple-loggers-in-same-class

how-can-i-create-2-separate-log-files-with-one-log4j-config-file

log4j-multiple-loggers-levels-and-appenders

<小时/>

编辑1:

could you help me with the info on when and how is the log4j.properties moved to target/classes [propertyconfigurator looks inside it]

当您构建项目时,log4j.property 文件将自动移动。但文件应该位于 src/main/resource/中才能自动移动。

如果是这种情况,您不需要以编程方式配置属性配置器。 Log4j可以直接使用。

关于java - log4j 结构化以实现一致的日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33912976/

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