我必须将哪些变量设置/传递给JVM才能使log4j正常运行?正确地说,我的意思是不要抱怨并打印到控制台.我能看到一个典型的例子吗?
注意:我需要避免在应用程序中创建log4j.properties文件.
解决方案是使用以下JVM参数:
-Dlog4j.configuration={path to file}
如果文件不在类路径中(在WEB-INF/classes
Tomcat的情况下),但在磁盘上的某个地方,请使用file:
,如
-Dlog4j.configuration=file:C:\Users\me\log4j.xml
更多信息和示例:http://logging.apache.org/log4j/1.2/manual.html
你有log4j配置文件吗?只需使用它
-Dlog4j.configuration={path to file}
其中{path to file}应该以前缀为前缀 file:
这似乎已经改变(可能与log4j2):
-Dlog4j.configurationFile=file:C:\Users\me\log4j.xml
请参阅:https://logging.apache.org/log4j/2.x/manual/configuration.html
我知道这已经回答了,但是因为你说,这不是你想要的,我想指出以下替代方案:
您还可以使用配置类而不是属性或xml文件.
-Dlog4j.configuratorClass=com.foo.BarConfigurator
有关详细信息,请参阅http://logging.apache.org/log4j/1.2/manual.html.
通常,只要您的log4j.properties文件位于类路径上,Log4j就应该在JVM启动时自动获取它.
自2015年以来,Log4J 1.x已经达到了EOL.
Log4J 2.x以后应该是JVM选项-Dlog4j.configurationFile=
PS
可能是相对于类路径的文件,而不该file:
在其他答案的建议.