如何动态更改log4j日志文件?

时间:2011-08-10 05:55:35

标签: java logging

我想要一个log4j配置,使日志文件名应该像$ {System-name} log.log一样。即如果应用程序在任何系统上启动,则无需更改配置文件或代码。它应该生成所提到的日志文件名。 感谢。

2 个答案:

答案 0 :(得分:2)

我是这样做的:
1)init logger by:

System.setProperty("my.logsDir", vcsLogsDir);
DOMConfigurator.configure("c:/log4j.xml");

2)在log4j.xml中我使用变量:

<param name="File" value="${my.logsDir}Default.log"/>d

答案 1 :(得分:2)

您可以使用${property}语法的Java系统属性。默认情况下定义了许多系统属性,包括

"os.arch"     Operating system architecture
"os.name"     Operating system name
"os.version"  Operating system version

有关默认属性的完整列表,请参阅System的API或将其列为System.getProperties().list(System.out)

如果默认属性不起作用,那么您将使用System.setProperty(property, value)添加自己的属性。