我在eclipse中使用Tomcat进行Web应用程序,并将log4j2.xml文件保存在环境变量位置。
使用系统环境变量
Variable name : sys_logroot
Variable value : D:\user\gouse
在这个目录中我有我的log4j2.xml文件。我试图在我的应用程序中使用这个log4j2.xml文件我无法加载这个xml文件,也没有为我的应用程序创建日志文件。
如何将Log4j2.xml文件加载到我的应用程序中以获取应用程序的日志?
答案 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();
}
}