我必须设置/传递哪些变量作为JVM的参数才能使log4j正常运行?我所说的正常是指不向控制台抱怨和打印。我能看一个典型的例子吗?注意:我需要避免log4j.properties在应用程序中创建www.example.com文件。
at0kjp5o1#
您是否有log4j配置文件?只需使用
-Dlog4j.configuration={path to file}
其中,{文件路径}应以file:作为前缀
file:
**编辑:**如果您正在使用log4j 2,则需要使用
-Dlog4j.configurationFile={path to file}
取自答案https://stackoverflow.com/a/34001970/552525
ggazkfy82#
解决方案使用以下JVM参数:
如果文件不在类路径中(在Tomcat中为WEB-INF/classes),而是在磁盘上的某个位置,请使用file:,如
WEB-INF/classes
-Dlog4j.configuration=file:C:\Users\me\log4j.xml
更多信息和示例,请访问:http://logging.apache.org/log4j/1.2/manual.html
hjzp0vay3#
这似乎已更改(可能使用log4j2)为:
-Dlog4j.configurationFile=file:C:\Users\me\log4j.xml
请参阅:https://logging.apache.org/log4j/2.x/manual/configuration.html
cidc1ykv4#
我知道这个问题已经得到了回答,但因为你说,这并不完全是你所寻找的,我想指出以下替代方案:您也可以使用组态类别来取代属性或xml档案。
-Dlog4j.configuratorClass=com.foo.BarConfigurator
有关详细信息,请参阅http://logging.apache.org/log4j/1.2/manual.html。
apeeds0o5#
自2015年以来,Log4J 1.x已经达到了EOL。从Log4J 2.x开始,JVM选项应为-Dlog4j.configurationFile=<filename>
-Dlog4j.configurationFile=<filename>
<filename>
rseugnpd6#
通常,只要您的log4j.properties文件在类路径中,Log4j就应该在JVM启动时自动选择它。
xiozqbni7#
相对路径也可以:
java -Dlog4j.configuration=file:".\log4j.properties" -jar com.your-1.0-SNAPSHOT.jar
或
java -Dlog4j.configuration=file:".\log4j.xml" -jar com.your-1.0-SNAPSHOT.jar
hgqdbh6s8#
如果您使用的是gradle。您可以应用'application'插件并使用以下命令
applicationDefaultJvmArgs = [ "-Dlog4j.configurationFile=your.xml", ]
bzzcjhmw9#
显示页面(Log4j 2-自动配置)Log4j 2需要:-Dlog4j2.configurationFile=<path to file>Log4j将检查“log4j2.configurationFile”系统属性,如果已设置,则将尝试使用与文件扩展名匹配的ConfigurationFactory加载配置。请注意,这并不限于本地文件系统上的某个位置,还可以包含URL。取自:Log4j 2-自动配置
-Dlog4j2.configurationFile=<path to file>
9条答案
按热度按时间at0kjp5o1#
您是否有log4j配置文件?只需使用
其中,{文件路径}应以
file:
作为前缀**编辑:**如果您正在使用log4j 2,则需要使用
取自答案https://stackoverflow.com/a/34001970/552525
ggazkfy82#
解决方案使用以下JVM参数:
如果文件不在类路径中(在Tomcat中为
WEB-INF/classes
),而是在磁盘上的某个位置,请使用file:
,如更多信息和示例,请访问:http://logging.apache.org/log4j/1.2/manual.html
hjzp0vay3#
这似乎已更改(可能使用log4j2)为:
请参阅:https://logging.apache.org/log4j/2.x/manual/configuration.html
cidc1ykv4#
我知道这个问题已经得到了回答,但因为你说,这并不完全是你所寻找的,我想指出以下替代方案:
您也可以使用组态类别来取代属性或xml档案。
有关详细信息,请参阅http://logging.apache.org/log4j/1.2/manual.html。
apeeds0o5#
自2015年以来,Log4J 1.x已经达到了EOL。
从Log4J 2.x开始,JVM选项应为
-Dlog4j.configurationFile=<filename>
<filename>
可能是相对于类路径的文件,没有其他答案中建议的file:
。*rseugnpd6#
通常,只要您的log4j.properties文件在类路径中,Log4j就应该在JVM启动时自动选择它。
xiozqbni7#
相对路径也可以:
或
hgqdbh6s8#
如果您使用的是gradle。您可以应用'application'插件并使用以下命令
bzzcjhmw9#
显示页面(Log4j 2-自动配置)Log4j 2需要:
-Dlog4j2.configurationFile=<path to file>
Log4j将检查“log4j2.configurationFile”系统属性,如果已设置,则将尝试使用与文件扩展名匹配的ConfigurationFactory加载配置。请注意,这并不限于本地文件系统上的某个位置,还可以包含URL。
取自:Log4j 2-自动配置