就我而言, 我已经配置了像
这样的log4j.xml<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>
我必须在路径
生成日志文件String loggerpath = request.getSession()。getServletContext()。getRealPath(“”);
我正在使用
System.setProperty("app.root", loggerpath+"\\oeslogger.log");
但它不起作用。 请建议我解决它。
答案 0 :(得分: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();
在代码的早期。