<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    瘋狂

    STANDING ON THE SHOULDERS OF GIANTS
    posts - 481, comments - 486, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    關(guān)于log4j的日志文件保存位置解決方案

    Posted on 2010-06-10 15:02 瘋狂 閱讀(36708) 評論(3)  編輯  收藏 所屬分類: java springweb
    以DailyRollingFileAppender 為例:假設(shè)每天一個日志文件
    有以下設(shè)置:

    log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.A1.File=app.log
    log4j.appender.A1.DatePattern='.'yyyy-MM-dd
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    log4j.appender.A1.layout.ConversionPattern=%d %5p - %c -%-4r [%t]    - %m%n

    此時生成日志文件將位于tomcat的bin目錄下,如要將日志文件保存在 :根目錄/web-info/logs/下,個人有以下4種解決方案:
    1 絕對路徑
    log4j.appender.A1.File=D:\apache-tomcat-6.0.18/webapps/項目/WEB-INF/logs/app.log
    但這種寫法靈活性很差

    以下3中使用相同的設(shè)置原理: jvm的環(huán)境變量
     2:spring的Log4jConfigListener
    通過以下配置:
    <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>webApp.root</param-value>
      </context-param>
     <context-param>
      <param-name>log4jConfigLocation</param-name>
        <param-value>classpath:log4j.properties</param-value>
     </context-param>
    <listener> 
         <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
     </listener>
    ...
    log4j.appender.logfile.File=${webApp.root}/WEB-INF/logs/app.log
    ...
    來解決
     2:使用已有jvm變量:
    例如:
        log4j.appender.logfile.File=${user.home}/logs/app.log
      日志將位于:例如windows:C:\Documents and Settings\joe\logs\app.log

    3 自己設(shè)置目錄,也就是在項目啟動時通過System.setProperty設(shè)置
    通過實(shí)現(xiàn)ServletContextListener來解決:例如

    public class log4jlistener implements ServletContextListener {

     public static final String log4jdirkey = "log4jdir";
     public void contextDestroyed(ServletContextEvent servletcontextevent) {
      System.getProperties().remove(log4jdirkey);

     }

     public void contextInitialized(ServletContextEvent servletcontextevent) {
      String log4jdir = servletcontextevent.getServletContext().getRealPath("/");
      //System.out.println("log4jdir:"+log4jdir);
      System.setProperty(log4jdirkey, log4jdir);

     }

    }
    web.xml配置:

    <listener>
      <listener-class>com.log4j.log4jlistener</listener-class>
     </listener>

    log4j.prtperties 配置:
    log4j.appender.A1.File=${log4jdir}/WEB-INF/logs/app1.log
    來解決。

    如果各位還有其他方法,請回帖補(bǔ)充 謝謝。。。

    評論

    # re: 關(guān)于log4j的日志文件保存位置解決方案  回復(fù)  更多評論   

    2010-06-10 23:45 by 隔葉黃鶯
    設(shè)置方法一般都那些,在 websphere 里可以為進(jìn)程定義一個 work dir。
    不過一般日志會生成在一個與應(yīng)用無關(guān)的目錄中的。

    # re: 關(guān)于log4j的日志文件保存位置解決方案  回復(fù)  更多評論   

    2010-06-21 23:09 by Qiu
    這種寫法也有問題,那就是部署到服務(wù)器的時候war包必須是解開的(部署到tomcat 可以),有些服務(wù)器是不會自動解開war包就運(yùn)行的,你可以部署到weblogic 11上面試試看 :-)

    # re: 關(guān)于log4j的日志文件保存位置解決方案  回復(fù)  更多評論   

    2014-10-28 16:16 by sasd
    asasad
    主站蜘蛛池模板: 欧洲精品成人免费视频在线观看 | 亚洲国产精品狼友中文久久久 | 亚洲国产欧美一区二区三区 | 亚洲福利秒拍一区二区| 四虎影视成人永久免费观看视频 | 高清永久免费观看| 国产成人毛片亚洲精品| 永久免费精品影视网站| 亚洲精品国产精品乱码不卞| 免费一级做a爰片久久毛片潮| 亚洲精品乱码久久久久久蜜桃| 日本在线观看免费高清| AV在线播放日韩亚洲欧| 一级毛片免费不卡直观看| 国产亚洲综合一区柠檬导航| A级毛片高清免费视频在线播放| 婷婷亚洲久悠悠色悠在线播放 | 黄色毛片视频免费| 久久精品国产亚洲一区二区| 免费人成视频在线观看网站| 亚洲日日做天天做日日谢| 免费国产在线观看| 日本免费中文字幕| 久久久久精品国产亚洲AV无码| 美女被免费视频网站a国产 | 国产午夜无码片免费| 久久综合日韩亚洲精品色| 99久久久国产精品免费牛牛| 中文字幕在线日亚洲9| 国产成人亚洲精品91专区手机| 日本免费在线观看| 未满十八私人高清免费影院| 亚洲老熟女@TubeumTV| 日韩a在线观看免费观看| 成年网在线观看免费观看网址| 久久精品国产亚洲AV果冻传媒| 色www永久免费视频| 91精品导航在线网址免费| 在线观看片免费人成视频播放| 亚洲综合在线一区二区三区| 亚洲乱亚洲乱少妇无码|