无法从系统环境变量加载LOG4J2.xml文件



我正在eclipse中使用Tomcat做一个web应用程序,并将log4j2.xml文件保存在环境变量位置。

使用系统环境变量

Variable name : sys_logroot
Variable value : D:usergouse

在这个目录中,我有一个log4j2.xml文件。我正试图在我的应用程序中使用这个log4j2.xml文件。我无法加载这个xml文件,也没有为我的应用软件创建日志文件。

如何将Log4j2.xml文件加载到应用程序中以获取应用程序的日志?

Apache说(从这里开始):

如何指定配置文件的位置?

默认情况下,Log4j查找名为log4j2.xml的配置文件(而不是log4j.xml)。

您还可以使用以下命令指定配置文件的完整路径系统属性:-Dlog4j.configurationFile=路径/到/log4j2.xml

也就是说,你必须在运行时设置系统属性,让log4j使用它

    String value = System.getenv("sys_logroot");
    value = "file:" + value;
    System.setProperty("log4j.configurationFile", value);

重要的是在使用类日志记录之前调用此部分。这是我的测试代码:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class Main {
  private static final Logger logger = LogManager.getLogger(Main.class.getName());
  public void doSomething() {
    logger.debug("Do something");
  }
}

测试仪:

public class Tester {
public static void main(String[] args) {
String value = System.getenv("sys_logroot");
value = "file:" + value;
    System.setProperty("log4j.configurationFile", value);
    new Main().doSomething();
 }
}

最新更新