Log4j的配置(xml and properties)

properties形式:

 

用到的包就是spring.jar和log4j.jar了,首先要配置的是web.xml,需要增加以下几项内容:

log4j参数:

<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>5000</param-value>
</context-param>

spring监听:

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

spring在Log4jConfigListener中会去读取context-param中的参数,找到log4j配置文件的位置,其中log4jRefreshInterval是动态修改配置文件的,非必须选项。

配置好了web.xml,然后就是log4j.properties,这个文件包含的所有选项的用法网络上都可以查到,这里只记录常用的几项。

#定义根节点,info是日志等级(共分5级),A1是自定义输出,console是输出到控制台

log4j.rootLogger=info, A1,console

#自定义输出配置

#循环写文件模式,输出文件名,单个文件大小,最大文件数,输出格式定义

log4j.appender.A1=org.apache.log4j.RollingFileAppender

log4j.appender.A1.File=test.log
log4j.appender.A1.MaxFileSize=5MB
log4j.appender.A1.MaxBackupIndex=10

log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c{1}]-[%p]:%L - %m%n

# 输出到控制台模式及输出格式
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c{1}]-[%p]:%L - %m%n

然后在自己的类文件里就可以定义log4j使用了。

private static Logger logger = Logger.getLogger(YOURCLASS.class);

可以使用logger.info();logger.error();logger.debug();等打出自己的日志。

在配置完用tomcat测试时发现一个问题,就是自定义的日志文件test.log跑到${TOMCAT_HOME}/bin目录下边了,后来查了资料,通过以下配置可以修改此文件目录,在web.xml里增加一个参数:

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

然后在log4j中定义日志文件时如下:

log4j.appender.A1.File=${YourApp.root}/test.log

此时test.log文件就输出到WEB-INF同级目录下了,当然这个也可以自己随便指定了。

顺便再记录下,今天测试出个结论,在加载web.xml时的顺序是:1.listener 2.filter 3.servlet

参考链接:http://blog.itpub.net/post/17457/487967

 

 

xml形式:

 

<?xml version="1.0" encoding="UTF-8"?>      <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">               <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/' >                   <appender name="myConsole" class="org.apache.log4j.ConsoleAppender">              <layout class="org.apache.log4j.PatternLayout">                  <param name="ConversionPattern"                         value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" />              </layout>              <!--过滤器设置输出的级别-->              <filter class="org.apache.log4j.varia.LevelRangeFilter">                  <param name="levelMin" value="debug" />                  <param name="levelMax" value="warn" />                  <param name="AcceptOnMatch" value="true" />              </filter>          </appender>                <appender name="myFile" class="org.apache.log4j.RollingFileAppender">                 <param name="File" value="D:/output.log" /><!-- 设置日志输出文件名 -->              <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->              <param name="Append" value="true" />              <param name="MaxBackupIndex" value="10" />              <layout class="org.apache.log4j.PatternLayout">                  <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />              </layout>          </appender>                  <appender name="activexAppender" class="org.apache.log4j.DailyRollingFileAppender">              <param name="File" value="E:/activex.log" />                <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />                <layout class="org.apache.log4j.PatternLayout">               <param name="ConversionPattern"                    value="[%d{MMdd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n" />              </layout>            </appender>                   <!-- 指定logger的设置,additivity指示是否遵循缺省的继承机制-->          <logger name="com.runway.bssp.activeXdemo" additivity="false">              <priority value ="info"/>                <appender-ref ref="activexAppender" />            </logger>                <!-- 根logger的设置-->          <root>              <priority value ="debug"/>              <appender-ref ref="myConsole"/>              <appender-ref ref="myFile"/>             </root>      </log4j:configuration>  

 

 

(1). 输出方式appender一般有5种:

             org.apache.log4j.RollingFileAppender(滚动文件,自动记录最新日志)
             org.apache.log4j.ConsoleAppender (控制台) 
             org.apache.log4j.FileAppender (文件)
             org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件)
             org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)



(2). 日记记录的优先级priority,优先级由高到低分为
            OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。
            Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这五个级别。



(3). 格式说明layout中的参数都以%开始,后面不同的参数代表不同的格式化信息(参数按字母表顺序列出):
                %c        输出所属类的全名,可在修改为 %d{Num} ,Num类名输出的维(如:"org.apache.elathen.ClassName",%C{2}将输出elathen.ClassName)
                %d       输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss}
                %l        输出日志事件发生位置,包括类目名、发生线程,在代码中的行数
                %n       换行符
                %m      输出代码指定信息,如info(“message”),输出message
                %p       输出优先级,即 FATAL ,ERROR 等
                %r        输出从启动到显示该log信息所耗费的毫秒数
                %t        输出产生该日志事件的线程名

参考链接:http://13480.blog.163.com/blog/static/16285514200921743741252/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值