在属性文件中动态加载属性值

时间:2012-07-09 07:06:28

标签: java log4j

我在我的spring + struts + hibernate应用程序中使用log4j。它工作正常,但唯一的问题是日志文件存储在特定路径中。有没有办法动态更改日志文件的路径。希望在服务器路径上生成日志文件。

这是我用于log4j的属性文件

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
**log4j.appender.file.File=C:\\loging.log**
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

# Root logger option
log4j.rootLogger=debug, file, stdout

我想在这里动态加载服务器路径* log4j.appender.file.File =服务器路径 *。

任何想法?。

2 个答案:

答案 0 :(得分:1)

您必须更改l og4j.properties file,例如log4j.appender.appender_name.File = ${file.name},并在调用PropertyConfigurator.configure的代码中更改System.setProperty("file.name","your path")

How to configure log4j with a properties file

基本上你需要编写一个自定义记录器类,你可以在其中调用上面的方法。你可以参考上面的链接。

答案 1 :(得分:0)