我想将 log4j 的日志文件保留在 struts2 应用程序的 WEB-INF 下。这是我的 log4j.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="APPLICATION" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="${appRootPath}WEB-INF/log/application.log"/>
<param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c %m%n"/>
</layout>
</appender>
<logger name="mypackage">
<level value="DEBUG"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="APPLICATION"/>
</logger>
</log4j:configuration>
如何在我的java代码中设置appRootPath(Web应用程序上下文路径)?我尝试这样
ServletContext ctx = e.getServletContext();
System.setProperty("appRootPath", ctx.getRealPath("/"));
但是 getRealPath() 方法返回路径实际上并不是我想要的。我想要这样的路径
D:\dev\workspace\MyApp\WebContent\WEB-INF\log
所以请分享一些示例或资源。我在开发中使用 eclipse juno 和 window 7。
最佳答案
不要这样做。无法保证 war 会在磁盘上爆发,即使是这样,容器也可以将代码目录设置为只读,因此您永远不应该尝试写入 Web 应用程序“内部”的位置。
关于java - 如何在struts应用程序中将log4j的日志文件保留在WEB-INF下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20324125/