我必须设置/传递哪些变量作为JVM的参数才能使log4j正常运行?正确地说,我的意思是不要抱怨并打印到控制台。我能看到一个典型的例子吗?
注意:我需要避免在应用程序中创建log4j.properties文件。
答案 0 :(得分:155)
解决方案使用以下JVM参数:
-Dlog4j.configuration={path to file}
如果文件不在类路径中(在Tomcat的情况下在WEB-INF/classes
中)但在磁盘上的某个位置,请使用file:
,如
-Dlog4j.configuration=file:C:\Users\me\log4j.xml
此处提供了更多信息和示例:http://logging.apache.org/log4j/1.2/manual.html
答案 1 :(得分:148)
你有log4j配置文件吗?只需使用
引用它-Dlog4j.configuration={path to file}
其中{path of file}应以file:
答案 2 :(得分:24)
这似乎已经改变(可能是用log4j2)到:
$.ajax({
type: "POST",
url: "fileName.aspx/deleteSomething",
data: JSON.stringify({ deleteSomeID: someID }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
if (response == "1") {
alert("Successful deletion");
} else {
alert("Operation failed! Details: " + response);
}
}
});
请参阅:https://logging.apache.org/log4j/2.x/manual/configuration.html
答案 3 :(得分:20)
我知道这已经回答了,但是因为你说,这不是你想要的,我想指出以下的选择:
您也可以使用配置类而不是属性或xml文件。
-Dlog4j.configuratorClass=com.foo.BarConfigurator
答案 4 :(得分:11)
通常,只要您的log4j.properties文件位于类路径上,Log4j就应该在JVM启动时自动获取它。
答案 5 :(得分:7)
自2015年以来,该晚会的Log4J 1.x已达到EOL。
Log4J 2.x以后,JVM option应为-Dlog4j.configurationFile=<filename>
P.S。 <filename>
可以是相对于类路径而不是 file:
的文件,如其他答案所示。
答案 6 :(得分:0)
相对路径也可以:
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
答案 7 :(得分:0)
如果使用gradle。您可以应用“ aplication”插件并使用以下命令
applicationDefaultJvmArgs = [
"-Dlog4j.configurationFile=your.xml",
]