我想将我的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.
答案 0 :(得分:3)
不要这样做。无法保证战争将在磁盘上爆炸,即使它是,容器也可以将代码目录设置为只读,因此您永远不应该尝试写入您的webapp“内部”的位置。