zoukankan      html  css  js  c++  java
  • LOG4J

    例子:

    <?xml version="1.0" encoding="GB2312" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <!--#log4j中有5级logger ,#FATAL 0 ,#ERROR 3 ,#WARN 4 ,#INFO 6 ,#DEBUG 7 -->
    <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>

    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n" />
    </layout>
    </appender>

    <appender name="debugFile" class="org.apache.log4j.RollingFileAppender">
    <!-- 设置日志输出文件名 -->
    <param name="File" value="D:/ci/log/samples-qui/szycj_debug.log" />
    <param name="MaxFileSize" value="20480KB" />
    <param name="MaxBackupIndex" value="10" />
    <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
    <param name="Append" value="false" />
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="[%d{yy/MM/dd HH:mm:ss:SSS} %5p %c{1}:%L ]: %m%n" />
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
    <param name="LevelMin" value="DEBUG" />
    <param name="LevelMax" value="warn" />
    </filter>
    </appender>

    <appender name="errorFile" class="org.apache.log4j.RollingFileAppender">
    <!-- 设置日志输出文件名 -->
    <param name="File" value="D:/ci//log/samples-qui/szycj_error.log" />
    <param name="MaxFileSize" value="10240KB" />
    <param name="MaxBackupIndex" value="10" />
    <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
    <param name="Append" value="false" />
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="[%d{yy/MM/dd HH:mm:ss:SSS} %5p %c{1}:%L ]: %m%n" />
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
    <param name="LevelMin" value="warn" />
    <param name="LevelMax" value="error" />
    </filter>
    </appender>

    <category name="com.fencer" additivity="false">
    <priority value="debug" />
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="debugFile" />
    <appender-ref ref="errorFile" />
    </category>

    <category name="java.sql" additivity="false">
    <priority value="debug" />
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="File" />
    </category>

    <root>
    <level value="debug" />
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="debugFile" />
    <appender-ref ref="errorFile" />
    </root>

    </log4j:configuration>

    logger.error(e.getMessage);打印的是message ,如果是null 的错误,视觉上什么都没有

    logger.error("Error",e);打印的是堆栈的信息,会打印整个信息

     -------------------------------------------------------------------------------------------
    Log4j
    介绍
    Log4j由三个重要的组件构成:日志信息的优先级 priority,日志信息的输出目的地Appender,日志信息的输出格式(布局)layout。

    1、日志的优先级,
    从低到高,依次有:DEBUG,INFO,WARN,ERROR,分别用来指定这条日志信息的重要程度;如果定义了了输入的级别为INFO,则只有等于及高于这个级别的才进行处理,此时将输入INFO,WARN,ERROR。值得注意的是,级别中还有两个关键字,
    ALL:打印所有的日志,
    OFF:关闭所有的日志输出。

    2、输出端 Appender

    log4j提供了以下几种常用的输出目的地:
    org.apache.log4j.ConsoleAppender,将日志信息输出到控制台
    org.apache.log4j.FileAppender,将日志信息输出到一个文件
    org.apache.log4j.DailyRollingFileAppender,将日志信息输出到一个,并且每天输出到一个新的日志文件,按照不同的配置可以定义每月一个日志文件,或者每周,每天,每小时,每分钟等输出一个新的日志文件。
    org.apache.log4j.RollingFileAppender,将日志信息输出到一个文件,通过指定文件的的尺寸,当文件大小到达指定尺寸的时候会自动把文件改名,如名为example.log的文件会改名为example.log.1,同时产生一个新的example.log文件。如果新的文件再次达到指定尺寸,又会自动把文件改名为example.log.2,同时产生一个example.log文件。依此类推,直到example.log. MaxBackupIndex,MaxBackupIndex的值可在配置文件中定义。
    org.apache.log4j.WriterAppender,将日志信息以流格式发送到任意指定的地方。
    org.apache.log4j.jdbc.JDBCAppender,通过JDBC把日志信息输出到数据库中。
    org.apache.log4j.net.SMTPAppender,将日志信息以邮件的方式发送到指定的邮箱。

    3、输出格式(布局)layout
    通过appender可以控制输出的目的地,而如果要控制输出的格式,就可通过log4j的layout组件来实现。通过配置文件定义一个appender的输出格式,Log4j提供的布局模式有以下几种:
    org.apache.log4j.ConsoleAppender,输出到控制台
    org.apache.log4j.HTMLLayout,以HTML表格形式布局
    org.apache.log4j.PatternLayout,可以灵活地指定布局模式
    org.apache.log4j.SimpleLayout,包含日志信息的级别和信息字符串

    值得一提的是org.apache.log4j.PatternLayout 以Pattern方式的布局,使用Pattern的方式来指定布局。

    pattern 的参数如下:ConversionPattern参数的格式含义
    格式名 含义
    %c 输出日志信息所属的类的全名
    %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28 ;比如 %d{HH:mm:ss,SSS} 或 %d{dd MMM yyyy HH:mm:ss,SSS}.
    格式可以参考 java类 SimpleDateFormat,不过 按照此类的设置会影响速度。你可以选择更快的方式 %d{ISO8601},%d{ABSOLUTE}, %d{RELATIVE}.或者使用log4j的ISO8601DateFormat, AbsoluteTimeDateFormat,RelativeTimeDateFormat 和 DateTimeDateFormat 方式.
    %f 输出日志信息所属的类的类名
    %l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
    %m 输出代码中指定的信息,如log(message)中的message
    %M 输出日志信息中所发生的方法名。
    %n 输出一个回车换行符,Windows平台为“ ”,Unix平台为“ ”
    %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
    %r 输出自应用启动到输出该日志信息所耗费的毫秒数
    %t 输出产生该日志事件的线程名

     

    1.1.1    使用

    (一)  使用

    1、  下载log4j的jar文件,复制到你的web-inf目录下

    2、  写配置文件log4j.properties,放到src目录下:

    #设置log4j两个重要的参数:输出级别(ERROR)、输出目的地(CONSOLE,DailyRolling)

    log4j.rootLogger=ERROR,FILE

    log4j.addivity.org.apache=true

     

     

    # 应用于控制台

    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

    log4j.appender.Threshold=DEBUG

    log4j.appender.CONSOLE.Target=System.out

    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

    log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

    #log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n

     

     

    #应用于文件

    log4j.appender.FILE=org.apache.log4j.FileAppender

    log4j.appender.FILE.File=d:/CGGMLog.log

    #log4j.appender.FILE.File=${webappHome}/WEB-INF/logs/CGGMLog.log

    log4j.appender.FILE.Append=true

    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout

    log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

    # Use this layout for LogFactor 5 analysis

     

     

    # 应用于文件回滚

    log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender

    log4j.appender.ROLLING_FILE.Threshold=ERROR

    log4j.appender.ROLLING_FILE.File=../webapps/OFMP/rolling.log

    log4j.appender.ROLLING_FILE.Append=true

    log4j.appender.ROLLING_FILE.MaxFileSize=10KB

    log4j.appender.ROLLING_FILE.MaxBackupIndex=1

    log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout

    log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

     

    # 用于按时间滚动的文件

    log4j.appender.DailyRolling=org.apache.log4j.DailyRollingFileAppender

    log4j.appender.DailyRolling.File=../webapps/fund/SampleMessages.log4j

    log4j.appender.DailyRolling.DatePattern=yyyyMMdd-HH'.log4j'

    log4j.appender.DailyRolling.layout=org.apache.log4j.xml.XMLLayout

     

    #应用于socket

    log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender

    log4j.appender.SOCKET.RemoteHost=localhost

    log4j.appender.SOCKET.Port=5001

    log4j.appender.SOCKET.LocationInfo=true

     

    # Set up for Log Facter 5

    log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout

    log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n

     

     

    # Log Factor 5 Appender

    log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender

    log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000

     

     

    # 发送日志给邮件

    log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender

    log4j.appender.MAIL.Threshold=FATAL

    log4j.appender.MAIL.BufferSize=10

    log4j.appender.MAIL.From=web@www.wuset.com

    log4j.appender.MAIL.SMTPHost=www.wusetu.com

    log4j.appender.MAIL.Subject=Log4J Message

    log4j.appender.MAIL.To=web@www.wusetu.com

    log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout

    log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

     

     

     

    # 用于数据库

    log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender

    log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test

    log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver

    log4j.appender.DATABASE.user=root

    log4j.appender.DATABASE.password=

    log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')

    log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout

    log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

     

     

    #自定义Appender

    log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender

    log4j.appender.im.host = mail.cybercorlin.net

    log4j.appender.im.username = username

    log4j.appender.im.password = password

    log4j.appender.im.recipient = corlin@cybercorlin.net

    log4j.appender.im.layout=org.apache.log4j.PatternLayout

    log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

  • 相关阅读:
    Leetcode 15 3Sum
    Leetcode 383 Ransom Note
    用i个点组成高度为不超过j的二叉树的数量。
    配对问题 小于10 1.3.5
    字符矩阵的旋转 镜面对称 1.2.2
    字符串统计 连续的某个字符的数量 1.1.4
    USACO twofive 没理解
    1002 All Roads Lead to Rome
    USACO 5.5.1 求矩形并的周长
    USACO 5.5.2 字符串的最小表示法
  • 原文地址:https://www.cnblogs.com/leonkobe/p/4172851.html
Copyright © 2011-2022 走看看