Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何在Ubuntu中指定默认的log4j2配置文件_Xml_Logging_Log4j2 - Fatal编程技术网

Xml 如何在Ubuntu中指定默认的log4j2配置文件

Xml 如何在Ubuntu中指定默认的log4j2配置文件,xml,logging,log4j2,Xml,Logging,Log4j2,我使用log4j2进行日志记录,但只收到错误消息,我认为这是默认配置。我已将log4j2.xml创建为: 并在~/.bashrc文件中的CLASSPATH变量中提到了它的路径。但它仍然没有选择这个XML文件。我必须只在运行时提到配置文件吗~/.bashrc文件内容: export CLASSPATH=$CLASSPATH:/home/user/Pradi/config/log4j2.xml 类路径配置可能因应用程序而异。它是JavaSE应用程序吗?如果应用程序打包在jar文件中,则可以在

我使用log4j2进行日志记录,但只收到错误消息,我认为这是默认配置。我已将
log4j2.xml
创建为:


并在
~/.bashrc
文件中的
CLASSPATH
变量中提到了它的路径。但它仍然没有选择这个XML文件。我必须只在运行时提到配置文件吗<代码>~/.bashrc文件内容:

 export CLASSPATH=$CLASSPATH:/home/user/Pradi/config/log4j2.xml

类路径配置可能因应用程序而异。它是JavaSE应用程序吗?如果应用程序打包在jar文件中,则可以在META-INF文件中定义类路径。如果它只是从控制台运行的一个简单类,那么可以尝试将这个log4j2.xml放在包结构的根目录中

运行此类时使用的文件夹结构是什么?

编辑:
通常配置文件放在不同的目录中,但不是完全不同的文件夹结构。通常有一个源文件夹,如src/main/java和另一个src/main/resources。编译后,它们通常将文件放在同一根文件夹中,例如目标/类。在您的简单测试中,我将文件放在同一个文件夹中,如果您从/home/user/Pradi运行该类,那么命令将是“java-classpath/home/user/Pradi log4jExample”。如果您告诉我您是如何编译类的,我可以为您提供有关如何组织这些文件的更多指导。

是的,它是从控制台运行的简单类。我第一次使用log4j2,所以只需检查它是如何记录的。我将xml放在包的根目录中,但仍然没有拾取文件。运行类的文件夹结构不同于根包。对于运行类,它是/home/user/Pradi/log4jExample.java;对于xml文件/home/user/log4j2/apache-log4j-2.0-beta3-bin/log4j2.xml,它只在xml文件与my.java文件位于同一文件夹中时才会拾取该文件。但是configs应该在不同的文件夹中,对吗?[/home/user/Pradi]是我的log4jExample.java文件所在的位置,最初我将log4j2.xml放在[/home/user/Pradi/config]文件夹中。所有log4j2 jar,如log4j12-api-2.0-beta3.jar等都位于[/home/user/log4j2/apache-log4j-2.0-beta3-bin]中,类路径包含[/home/user/log4j2/apache-log4j-2.0-beta3-bin]、[home/user/Pradi/config/l]‌​因为我在~/.bashrc中提到了类路径,所以我在编译时没有使用-classpath选项。注意:我是在ubantu而不是EclipseIDE中完成这些工作的