iLife

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

     自从将log4j该成logback后,一直在为log存放的路径烦恼,查找了很多资料及logback的example都无法直接定位log存放的位置。查到某些资料说logback在配置文件路径时不可以使用相对路径,这个暂时也没有深究。目前就是需要在配置文件中配置文件放的绝对路径。

     <property name="LOG_HOME" value="${webapp.root}"/>

    这个变量是在web.xml中配置的context-param。

    <context-param>
       <param-name>webAppRootKey</param-name>
       <param-value>webapp.root</param-value>
    </context-param>

 

   为了使这个context-param只需添加listener即可。在使用log4j时,使用org.springframework.web.util.Log4jConfigListener配置,在不使用log4j时,只需要配置org.springframework.web.util.WebAppRootListener将项目路径放入context-param中。

<listener>
    <listener-class>org.springframework.web.util.WebAppRootListener</listener-class>
</listener>

 

通过这样的设置就可以在logback.xml中配置文件的路径了

  <property name="LOG_HOME" value="${webapp.root}"/>
  <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>[%-5p] %d{MM-dd HH:mm:ss.SSS} %c{36}:%L - %m%n</pattern>
    </encoder>
  </appender>
  <appender name="infoFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <!--for further documentation-->
    <file>${LOG_HOME}/logs/log.log</file>
    <encoder>
      <pattern>[%-5p] %d{MM-dd HH:mm:ss.SSS} - %m%n</pattern>
    </encoder>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>info</level>
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${LOG_HOME}/logs/log_%d{yyyy-MM-dd}.log</fileNamePattern>
    </rollingPolicy>
  </appender>

 

posted on 2013-05-24 10:34  iLife  阅读(1953)  评论(0编辑  收藏  举报