0

就我而言,我已经配置了 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");

但它不起作用。请建议我解决它。

4

1 回答 1

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();

在代码的早期。

于 2013-08-23T12:33:04.060 回答