我必须设置/传递什么变量作为JVM的参数才能使log4j正常运行?正确地说,我的意思是没有抱怨,并打印到控制台。我能看到一个典型的例子吗?通过JVM参数进行log4j配置?
注意:我需要避免在应用程序中创建log4j.properties文件。
我必须设置/传递什么变量作为JVM的参数才能使log4j正常运行?正确地说,我的意思是没有抱怨,并打印到控制台。我能看到一个典型的例子吗?通过JVM参数进行log4j配置?
注意:我需要避免在应用程序中创建log4j.properties文件。
你有log4j配置文件吗?刚开始使用
-Dlog4j.configuration={path to file}
其中{文件路径}引用它应该file:
一般前缀,只要你的log4j.properties文件在类路径,Log4j的应该只是自动把它捡起来,在JVM启动。
我知道这已经回答了,但因为你说,这不是你在寻找什么,我想指出以下几点可供选择:
您也可以使用配置类代替属性或xml文件。
-Dlog4j.configuratorClass=com.foo.BarConfigurator
的解决方案是使用下面的JVM的说法:
-Dlog4j.configuration={path to file}
如果文件没有在classpath(在WEB-INF/classes
在Tomcat中的情况下),但放到你的磁盘上,使用file:
,像
-Dlog4j.configuration=file:C:\Users\me\log4j.xml
这似乎已经改变了(可能与log4j2)至:
-Dlog4j.configurationFile=file:C:\Users\me\log4j.xml
参见:https://logging.apache.org/log4j/2.x/manual/configuration.html
迟到了作为2015年以来,Log4J的1.x中已经达到了EOL。
Log4J的2.X起JVM option应该-Dlog4j.configurationFile=<filename>
附: <filename>
可能是相对于类路径而不是file:
的文件,如其他答案中的建议。
Brian - 并不完全是我在找的东西,但我认为这是将文件移动到我的应用程序并通过JVM参数设置属性之间的妥协折中。 – jconlin 2009-04-23 14:21:37
我认为,随着应用程序变得越来越复杂(如果会的话),随着您对应用程序的更多配置,文件变得更易于管理。但是我承认我在这里猜测你的用例。 – 2009-04-23 15:35:23
对于logback.xml,-Dlogback.configuration = {文件路径}不起作用。任何建议? – 2013-10-22 12:51:53