通过JVM参数配置log4j?

时间:2009-04-22 19:58:21

标签: java logging log4j

我必须设置/传递哪些变量作为JVM的参数才能使log4j正常运行?正确地说,我的意思是不要抱怨并打印到控制台。我能看到一个典型的例子吗?

注意:我需要避免在应用程序中创建log4j.properties文件。

8 个答案:

答案 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

有关详细信息,请参阅http://logging.apache.org/log4j/1.2/manual.html

答案 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",
                              ]