zoukankan      html  css  js  c++  java
  • java中log日志的使用(完全版)

    Commons_logging Apache通用日志包
    他为Log4JLogger;NoOpLog;LogKitLogger;Jdk14Logger;AvalonLogger提供了一共通用的接口进行调用,使得在使用各种不同的第三方日志包时变得非常简单。SimpleLog:是commons_logging自带的一个控制台输出日志。
    可以通过简单的配置使用不同的第三方日志包。
    src根目录下放进commons-logging.properties文件,进行配置使用哪个第三方日志包。
    #定义了使用的具体第三方的日值包
    #org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
    org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
    #org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog
    #org.apache.commons.logging.Log=org.apache.commons.logging.impl.LogKitLogger
    #org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
    #org.apache.commons.logging.Log=org.apache.commons.logging.impl.AvalonLogger
    程序中调用:
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    public static Log log = LogFactory.getLog(test.class);
    log.error("成功关闭链接");
     
    commons_logging.properties文件中定义好了使用那个第三方日志包,在程序中打印日志时,就使用的是那个包,非常方便。
    Log 日志包
    log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
    log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
    ConsoleAppender,控制台输出
    FileAppender,文件日志输出
    SMTPAppender,发邮件输出日志
    SocketAppender,Socket日志
    NTEventLogAppender,Window NT日志
    SyslogAppender,
    JMSAppender,
    AsyncAppender,
    NullAppender
     
    文件输出:RollingFileAppender
    log4j.rootLogger=INFO,logfile
    log4j.appender.logfile=org.apache.log4j.RollingFileAppender
    log4j.appender.logfile.Threshold=INFO          //输出以上的INFO信息
    log4j.appender.logfile.File=../logs/INFO_log    //保存log文件路径
    log4j.appender.logfile.Append=true               //默认为true,添加到末尾,false在每次启动时进行覆盖
    log4j.appender.logfile.MaxFileSize=10KB //一个log文件的大小,超过这个大小就又会生成1个日志 //KB MBGB
    log4j.appender.logfile.MaxBackupIndex=//最多保存3个文件备份
    log4j.appender.logfile.layout=org.apache.log4j.HTMLLayout     //输出文件的格式
    log4j.appender.logfile.layout.LocationInfo=true #是否显示类名和行数
    log4j.appender.logfile.layout.Title=页面title       #html页面的<title>
    ############################## SampleLayout ####################################
    log4j.appender.logfile.layout=org.apache.log4j.SampleLayout
    ############################## PatternLayout ###################################
    log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
    log4j.appender.logfile.layout.ConversionPattern=%d%p[%c]-%m%n%d
    ############################## XMLLayout #######################################
    log4j.appender.logfile.layout=org.apache.log4j.XMLLayout
    log4j.appender.logfile.layout.LocationInfo=true   #是否显示类名和行数
    ############################## TTCCLayout ######################################
    # log4j.appender.logfile.layout=org.apache.log4j.TTCCLayout
    log4j.appender.logfile.layout.DateFormat=ISO8601
    #NULLRELATIVEABSOLUTEDATE or ISO8601.
    log4j.appender.logfile.layout.TimeZoneID=GMT-8:00
    log4j.appender.logfile.layout.CategoryPrefixing=false ##默认为true 打印类别名
    log4j.appender.logfile.layout.ContextPrinting=false    ##默认为true 打印上下文信息
    log4j.appender.logfile.layout.ThreadPrinting=false ##默认为true 打印线程名
    打印信息如下:
    2007-09-13 14:45:39,765 [http-8080-1] ERROR com.poxool.test.test - error成功关闭链接
    ###############################################################################
    每天文件的输出:DailyRollingFileAppender
    log4j.rootLogger=INFO,errorlogfile
    log4j.appender.errorlogfile=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.errorlogfile.Threshold=ERROR
    log4j.appender.errorlogfile.File=../logs/ERROR_log
    log4j.appender.errorlogfile.Append=true #默认为true,添加到末尾,false在每次启动时进行覆盖
    log4j.appender.errorlogfile.ImmediateFlush=true       #直接输出,不进行缓存
    #'.'yyyy-MM: 每个月更新一个log日志
    #'.'yyyy-ww: 每个星期更新一个log日志
    #'.'yyyy-MM-dd: 每天更新一个log日志
    #'.'yyyy-MM-dd-a: 每天的午夜和正午更新一个log日志
    #'.'yyyy-MM-dd-HH: 每小时更新一个log日志
    #'.'yyyy-MM-dd-HH-mm: 每分钟更新一个log日志
    log4j.appender.errorlogfile.DatePattern='.'yyyy-MM-dd'.log' #文件名称的格式
    log4j.appender.errorlogfile.layout=org.apache.log4j.PatternLayout
    log4j.appender.errorlogfile.layout.ConversionPattern=%d%p[%c]-%m%n%d
     
    控制台输出:
    log4j.rootLogger=INFO,consoleAppender
    log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
    log4j.appender.consoleAppender.Threshold=ERROR
    log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
    log4j.appender.consoleAppender.layout.ConversionPattern=%d%-5p%m%n
    log4j.appender.consoleAppender.ImmediateFlush=true        //直接输出,不进行缓存
    log4j.appender.consoleAppender.Target=System.err //默认是System.out方式输出
     
    !-----------------------------------------------------------------------------!
    !                          PATTERN FORMATS GLOSSARY                           !
    !-----------------------------------------------------------------------------!
    ! %n – 新的一行                                                              !
    ! %m – 打印错误信息                                                          !
    ! %p – 打印优先级信息  (FATAL, ERROR, WARN, INFO, DEBUG or custom)           !
    ! %r – 打印程序开始后过去的毫秒数                                            !
    ! %% -  打印输出的百分比                                                       !
    !                                                                             !
    !-----------------------SOME MORE CLUTTER IN YOUR LOG-------------------------!
    ! %c - name of your category (logger), %c{2} will outputs last two components !
    ! %t – 打印产生该日志信息的线程名称                                          !
    ! %x – 打印嵌套的上下文信息                                                  !
    !                                                                             !
    !-------------------------SLOW PERFORMANCE FORMATS----------------------------!
    ! %d – 打印时间和日期, 比如 %d{ISO8601}, %d{DATE}, %d{ABSOLUTE},             !
    !        %d{HH:mm:ss,SSS}, %d{dd MMM yyyy HH:mm:ss,SSS} 等等                  !
    ! %l - Shortcut for %F%L%C%M                                                  !
    ! %F - Java 代码文件名称                                                      !
    ! %L - Java 代码错误的行数                                                    !
    ! %C - Java 类的名称, %C{1} 将输出以“.”分割的后面一个                       !
    ! %M - Java 方法的名称                                                       !
    !                                                                             !
    !------------------------------FORMAT MODIFIERS-------------------------------!
    ! %-any_letter_above - Left-justify in min. width (default is right-justify) !
    ! %20any_letter_above - 20 char. min. width (pad with spaces if reqd.)        !
    ! %.30any_letter_above - 30 char. max. width (truncate beginning if reqd.)    !
    ! %-10.10r - Example. Left-justify time elapsed within 10-wide field.        !
    !              Truncate from beginning if wider than 10 characters.           !
    !-----------------------------------------------------------------------------!
     
    发送邮件:SMTPAppender
    log4j.rootLogger=INFO,MAIL
    log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
    log4j.appender.MAIL.Threshold=DEBUG
    log4j.appender.MAIL.BufferSize=10KB
    log4j.appender.MAIL.From=yu77585211111@163.com
    log4j.appender.MAIL.SMTPHost=mail.myce.net.cn
    log4j.appender.MAIL.Subject=Log4JMessage
    log4j.appender.MAIL.To=yuyongpeng@myce.net.cn
    log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
    log4j.appender.MAIL.layout.ConversionPattern=%d-%c-%-4r[%t]%-5p%c%x-%m%n
     
    数据库:JDBCAppender
    log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
    log4j.appender.DATABASE.URL=jdbc:oracle:thin:@210.51.173.94:1521:YDB
    log4j.appender.DATABASE.driver=oracle.jdbc.driver.OracleDriver
    log4j.appender.DATABASE.user=ydbuser
    log4j.appender.DATABASE.password=ydbuser
    log4j.appender.DATABASE.sql=INSERTINTOA1(TITLE3)VALUES('%d-%c%-5p%c%x-%m%n')
    log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
    log4j.appender.DATABASE.layout.ConversionPattern=%d-%c-%-4r[%t]%-5p%c%x-%m%n
    //数据库的链接会有问题,可以重写org.apache.log4j.jdbc.JDBCAppender的getConnection使用数据库链接池去得链接,可以避免insert一条就链接一次数据库。()
  • 相关阅读:
    C#操作Windows控制面板
    WPF打印控件内容
    LINQ函数
    通过实现System.IComparable接口的CompareTo方法对两个类进行比较
    泛型和约束
    CSS样式基础总结
    C#调用百度高精度IP定位API通过IP获取地址
    软件下载路径
    RNN学习资料
    mysql 不能插入中文记录
  • 原文地址:https://www.cnblogs.com/zailushang117/p/3465996.html
Copyright © 2011-2022 走看看