2013-08-23 177 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(); 

很早在代碼中。