log4j

来源:互联网 发布:mac上怎么看西瓜影音 编辑:程序博客网 时间:2024/06/03 06:42

在编码中我们会经常使用logj进行某个地方监控,这时候就需要用到log4j了.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="myConsole" class="org.apache.log4j.ConsoleAppender">      <!--      设置通道名称和输出方式,其中输出方式appender有5种,分别为      org.apache.log4j.RollingFileAppender         org.apache.log4j.ConsoleAppender (控制台)     org.apache.log4j.FileAppender (文件)        org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件)        org.apache.log4j.WriterAppender (将日志信息以流格式发送到指定地方)     -->      <param name="Target" value="System.out"/>      <param name="Threshold" value="INFO"/>      <!--      Threshold是个全局的过滤器,他将把低于所设置的level的信息过滤不显示出来     -->      <!-- 设置日志输出的格式-->      <layout class="org.apache.log4j.PatternLayout">          <!--       参数都以%开始后面不同的参数代表不同的格式化信息:          %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  输出产生该日志事件的线程名-->        <!-- The default pattern: Date Priority [Category] Message\n -->      <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>      </layout>    </appender>    <!--输出方式是:每天一个日志文件-->    <!--设置通道名称是:file,输出方式DailyRollingFileAppender-->  <appender name="myFile" class="org.apache.log4j.DailyRollingFileAppender">      <!--日志文件路径和文件名称 -->      <!-- 加../在logs,加/在C盘,不加在bin目录 -->    <!--       如果在加载时设置了变量System.setProperty("WebApp", appRoot),       可在此取出来${WebApp} -->    <param name="File" value="../logs/mylog.log"/>          <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->      <param name="Append" value="true"/>        <!-- Rollover at midnight each day -->      <!-- e.g. mylog.log.2009-11-25.log -->    <param name="DatePattern" value="'.'yyyy-MM-dd'.log'"/>      <!-- Rollover at the top of each hour       <param name="DatePattern" value="'.'yyyy-MM-dd-HH'.log'"/>      -->      <layout class="org.apache.log4j.PatternLayout">        <!--         The default pattern: Date Priority [Category] Message\n       -->        <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>        <!--         The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n -->      <!--         <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>         -->      </layout>         </appender>           <appender name="ERROR_LOG" class="org.apache.log4j.DailyRollingFileAppender">        <errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler"/>        <param name="File" value="error.log"/>        <param name="Append" value="true"/>        <!-- 指定日志输出级别 -->      <param name="Threshold" value="INFO"/>        <param name="DatePattern" value="'.'yyyy-MM-dd'.log'"/>        <layout class="org.apache.log4j.PatternLayout">        <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>        </layout>     </appender>                <!--        level:是日记记录的优先级,优先级由高到低分为              OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。             Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这四个级别。     -->      <!-- 指定logger的设置,additivity指示是否叠加输出log,如果是false,      在DsErrorLog logger中日志不会被其它logger满足条件的logger(比如root)        输出       -->        <!-- 将名称为DSErrorLog的logger,输出到“EEROR_LOG”的appender            所谓logger的名字也就是,在定义Logger时,构造函数的参数             Logger log = Logger.getLogger("DSErrorLog");       -->      <logger name="DSErrorLog" additivity="false">          <level class="org.apache.log4j.Level" value="DEBUG"/>          <appender-ref ref="ERROR_LOG"/>      </logger>                <!--      输出指定类包中的日志,比如想输出          Hibernate运行中生成的SQL语句,可作如下设置       -->     <category name="org.hibernate.SQL">       <priority value="DEBUG"/>        <!--             如果指定一个appender,这些log将被输出到指定的appender             如:<appender-ref ref="myFile"/>               否则将作用于所有的appender          -->     </category>                      <!--        根默认会自动构建一个 root,输出INFO级别的日志到控制台,供logger继承      -->            <root>                <priority value ="INFO"/>                <appender-ref ref="myConsole"/>                <appender-ref ref="myFile"/>              </root>          </log4j:configuration>  

更多配置请看

Log4j XML Configuration Primer


转自:http://www.cnblogs.com/edwardlauxh/archive/2010/07/22/1918554.html

0 0
原创粉丝点击