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

时间:2015-02-25 08:57:07

标签: log4j2

我在eclipse中使用Tomcat进行Web应用程序,并将log4j2.xml文件保存在环境变量位置。

使用系统环境变量

Variable name : sys_logroot
Variable value : D:\user\gouse

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

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

1 个答案:

答案 0 :(得分:1)

Apache说(来自here):

  

如何指定配置文件位置?

     

默认情况下,Log4j会查找名为log4j2.xml的配置文件(不是   logpath中的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();
 }
}