2013-08-23 178 views
0

在我的情况下, 我有这样设置路径

<appender name="FILE" class="org.apache.log4j.RollingFileAppender"> 
<errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler" /> 
<param name="File" value="${app.root}" /> 
<param name="Append" value="true" /> 
<param name="MaxFileSize" value="20000KB" /> 
<param name="MaxBackupIndex" value="400" /> 
<layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="%-5p: %d{dd MMM yyyy HH:mm:ss.SSS} %-5l - %m%n%n" /> 
</layout> 

我不得不产生在

在路径日志文件配置的log4j.xml String loggerpath = request.getSession()。getServletContext()。getRealPath(“”);

我使用

System.setProperty("app.root", loggerpath+"\\oeslogger.log"); 

但它没有工作。 请建议我解决它。

回答

0

可配置日志记录的要点是配置文件比程序更容易改变,所以我看不到你要完成的工作。你不能在log4j.xml中将文件设置为“oeslogger.log”吗?

在任何情况下,似乎您的记录器已在您设置系统属性app.root时配置。这就是为什么改变不起作用。为了动态更改日志记录属性,您必须改用Log4j的API。所以你可以尝试类似于:

Logger ll = Logger.getLogger("<NAME OF LOGGER>"); 
FileAppender fa = (FileAppender) ll.getAppender("FILE"); 
fa.setFile(loggerpath + "\\oeslogger.log"); 
fa.activateOptions(); 

很早在代码中。