zoukankan      html  css  js  c++  java
  • log4j配置文件详解

    在开发中经常会碰到日志,网上关于日志的框架也很多,像log4j、self4j、common-logging等,下面对log4j进行介绍。

    log4j是java开发的日志框架,具有低侵入的特点,其重点使用的部分是log4j的配置文件,有两格式的配置文件,一种XML的,一种properties的,在开发中常用properties格式,对properties格式的配置文件做详细描述,log4j.properties

    ### set log levels ###  
    log4j.rootLogger = debug,stdout,D,E  
    
    log4j.appender.stdout = org.apache.log4j.ConsoleAppender  
    log4j.appender.stdout.Target = System.out  
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout  
    log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n  
    
    log4j.appender.D = org.apache.log4j.DailyRollingFileAppender  
    log4j.appender.D.File = F://logs/log.log  
    log4j.appender.D.Append = true  
    log4j.appender.D.Threshold = DEBUG   
    log4j.appender.D.layout = org.apache.log4j.PatternLayout  
    log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n  
    
    log4j.appender.E = org.apache.log4j.DailyRollingFileAppender  
    log4j.appender.E.File =F://logs/error.log   
    log4j.appender.E.Append = true  
    log4j.appender.E.Threshold = ERROR   
    log4j.appender.E.layout = org.apache.log4j.PatternLayout  
    log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

    上面是properties格式的配置文件

    log4j.rootLogger ,此处也可以使用log4j.rootCategory,rootLogger是rootCategory的子类,现在已经不建议使用rootCatetory了。

    指定日志的输出级别和输出目的地,如,debug,sdtout,file

    debug  指定日志的输出界别,log4j一共定义了9中日志界别,由高到低为:off、fatal、error、warn、info、debug、all 推荐使用其中的四种级别:error、warn、info、debug,如果使用了info,则error、warn、info级别都会输出,如果使用warn则error、warn级别的日志都会输出;sdtout、file指定的是日志输出的位置的一个名称

    log4j.appender.sdtout=org.apache.log4j.ConsoleAppender  指定sdtout的输出使用的是ConsoleAppender类,即输出到控制台

    log4j.appender.stdout.Target = System.out  使用System.out 进行输出

    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout  输出的布局

    log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n   输出的日志格式

    默认情况下配置log4j.rootLogger对整个项目其作用,如果想对某个包起作用可以配置如下

    log4j.logger.com.cn.mapper=debug  com.cn.mapper是包名,此包下的所有类的日志都会输出,输出的级别为debug,即error、warn、info、debug级别的日志都会输出。

    综上所述,一个log4j的配置文件包括以下及部分

    log4j.rootLogger=[info|debug],sdtout,mail,file,appenderName    日志文件的级别,输出目的地名称

    log4j.appender.appenderName=org.apache.log4j.DailyRollingFileAppender   appenderName需要换成相应的名称  org.apache.log4j.DailyRollingFileAppender 指定使用的类

          这里的类有以下几种:org.apache.log4j.ConsoleAppender(控制台)、org.apache.log4j.FileAppender(文件)、org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件) 、org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件

        ConsoleAppender  是输出到控制台 ,有以下可选项Threshold(指定日志输出的最低级别)、Target(输出控制台)

    log4j.appender.appenderName.layout = org.apache.log4j.PatternLayout   日志的格式布局,有这样几个可选的布局:org.apache.log4j.HTMLLayout(以HTML表格形式布局)、org.apache.log4j.PatternLayout(可以灵活地指定布局模式) 、org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串) 、org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 

    下面是一个输出到控制台的log4j的配置文件,

    ### set log levels ###  
    log4j.rootLogger = debug,stdout
    
    log4j.appender.stdout = org.apache.log4j.ConsoleAppender  
    log4j.appender.stdout.Target = System.out  
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout  
    log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n  


    了解了log4j的配置文件之后,便可以按照需要配置日志的输出目的地、输出级别等。

    有不当之处,欢迎指正

    谢谢

  • 相关阅读:
    Codeforces 946 A.Partition
    牛客网 2018年全国多校算法寒假训练营练习比赛(第五场) H.Tree Recovery-完全版线段树(区间更新、区间求和)
    牛客网 2018年全国多校算法寒假训练营练习比赛(第五场) F.The Biggest Water Problem
    牛客网 2018年全国多校算法寒假训练营练习比赛(第五场) B.Big Water Problem-完全版线段树(单点更新、区间求和)
    牛客网 2018年全国多校算法寒假训练营练习比赛(第五场) A.逆序数
    POJ 3368.Frequent values-处理数据+RMQ(ST)
    hdu 3033 I love sneakers! 分组背包
    bzoj 2957: 楼房重建 线段树
    hdu 5925 Coconuts 离散化+dfs
    HDU 5929 Basic Data Structure 模拟
  • 原文地址:https://www.cnblogs.com/teach/p/5705172.html
Copyright © 2011-2022 走看看