【问题标题】:How to keep log4j's log file under WEB-INF in struts application如何在struts应用程序中将log4j的日志文件保存在WEB-INF下
【发布时间】:2013-12-02 08:48:48
【问题描述】:

我想将 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。

【问题讨论】:

    标签: java logging log4j


    【解决方案1】:

    不要这样做。无法保证战争会在磁盘上爆炸,即使是这样,容器也可以将代码目录设置为只读,因此您永远不应尝试写入 web 应用“内部”的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-08
      • 2014-07-03
      • 1970-01-01
      相关资源
      最近更新 更多