zoukankan      html  css  js  c++  java
  • log4j 相对路径


    参考: http://elf8848.iteye.com/blog/2008595


    1. log4j.logger.ApiLog=debug,ApiLog  
    2. log4j.appender.ApiLog=org.apache.log4j.DailyRollingFileAppender  
    3. log4j.appender.ApiLog.File=${sanjuSCM.root}/../../logs/sanjuSCM/ApiLog/Log_  
    4. log4j.appender.ApiLog.DatePattern=yyyy-MM-dd'.log'  
    5. log4j.appender.ApiLog.layout=org.apache.log4j.PatternLayout  
    6. log4j.appender.ApiLog.layout.ConversionPattern=%d - %l -%-4r [%t] %-5p %x - %m%n  
    7.   
    8. log4j.logger.WebLog=debug,WebLog  
    9. log4j.appender.WebLog=org.apache.log4j.DailyRollingFileAppender  
    10. log4j.appender.WebLog.File=${sanjuSCM.root}/../../logs/sanjuSCM/WebLog/Log_  
    11. log4j.appender.WebLog.DatePattern=yyyy-MM-dd'.log'  
    12. log4j.appender.WebLog.layout=org.apache.log4j.PatternLayout  
    13. log4j.appender.WebLog.layout.ConversionPattern=%d - %l -%-4r [%t] %-5p %x - %m%n  


    前一章 : http://blog.csdn.net/hanjun0612/article/details/72639867

    中提到了相对路径 ${sanjuSCM.root},如上图

    其实这个要去web.xml中查找 webAppRootKey节点。


    web.xml中webAppRootKey

    ------------------------------------------------------------------------------------------------
    1、 web.xml配置 
     <context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>webapp.root</param-value>
    </context-param>
    "webapp.root"这个字符串可以随便写任何字符串。如果不配置默认值是"webapp.root"。
     
    可以用System.getProperty("webapp.root")来动态获项目的运行路径。
    一般返回结果例如:/usr/local/tomcat6/webapps/项目名

    2、解决以下报错

    部署在同一容器中的Web项目,要配置不同的<param-value>,不能重复,否则报类似下面的错误:
    Web app root system property already set to different value: 'webapp.root' = [/home/user/tomcat/webapps/project1/] instead of [/home/user/tomcat/webapps/project2/] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!  
    意思是“webapp.root”这个key已经指向了项目1,不可以再指向项目2.

    3、加载方式

    Spring通过org.springframework.web.util.WebAppRootListener 这个监听器来运行时的项目路径。
    但是如果在web.xml中已经配置了 org.springframework.web.util.Log4jConfigListener这个监听器,
    则不需要配置WebAppRootListener了。因为Log4jConfigListener已经包含了WebAppRootListener的功能
    一般配置类型下面的例子:

    Xml代码  收藏代码
    1. <!-- 加载Log4J 配置文件  -->  
    2. <context-param>  
    3.     <param-name>log4jConfigLocation</param-name>  
    4.     <param-value>WEB-INF/conf/log4j.properties</param-value>  
    5. </context-param>     
    6.   
    7. <context-param>  
    8.     <param-name>log4jRefreshInterval</param-name>  
    9.       <param-value>3000</param-value>  
    10.  </context-param>  
    11.   
    12. <listener>  
    13.     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
    14.  </listener>  

     

    4、在运行时动态的找出项目的路径

    在log4j.properties配置文件,就可以按下面的方式使用${webapp.root}:
     log4j.appender.file.File=${webapp.root}/WEB-INF/logs/sample.log 
    就可以在运行时动态的找出项目的路径





  • 相关阅读:
    Linux知识(4)----文件系统结构
    ROS知识(4)----初级教程之常见问题汇总
    Linux知识(3)----常用快捷键和命令
    ROS知识(1)----ROS Jade安装
    Linux知识(1)----U盘安装Ubantu14.04系统
    Linux知识(2)----中文输入法安装
    EM(Expectation Maximization)算法
    idea xml 绿背景色 去掉拼写检查
    Java transient
    java代码中获取classpath路径
  • 原文地址:https://www.cnblogs.com/hanjun0612/p/9779799.html
Copyright © 2011-2022 走看看