在spring mvc应用程序的根目录下设置日志文件的路径

时间:2013-08-23 09:08:13

标签: java spring log4j

就我而言, 我已经配置了像

这样的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");

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

1 个答案:

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

在代码的早期。