• log4j.properties配置文件及详解


    log4j配置文件有三个主要的组件:Logger,Appender和Layout,分别为日志类型,日志输出目的地,日志输出格式。

    1. 配置日志级别及appenderName

    log4j.rootLogger=[level],console,debugFileAppender,errorFileAppender,...

    注:其中 [level] 是日志输出级别:FATAL、ERROR、WARN、INFO、DEBUG 五个级别,通过定义的级别,你可以控制程序中的日志输出,例:如果定义了ERROR级别,程序中只有FARAL、ERROR 级别的 log 会被输出。

    • FATAL:致命错误。
    • ERROR:严重错误,主要是程序的错误。
    • WARN:一般警告,比如session丢失。
    • INFO:一般要显示的信息,比如登录退出。
    • DEBUG:程序的调试信息。

    2. Log4j提供的输出目的地有以下几种:

    log4j.appender.appenderName= 输出目的地 (这里的appenderName是在前面定义的,可任意起名)

    • org.apache.log4j.ConsoleAppender(控制台)
    • org.apache.log4j.FileAppender(文件)
    • org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
    • org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
    • org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

    3. 配置布局类型

    log4j.appender.appenderName.layout = 布局类型(设置布局类型) 

    Log4j提供的layout有以下4种:

    • org.apache.log4j.HTMLLayout(以HTML表格形式布局)
    • org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
    • org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
    • org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

    4. 配置符号所代表的含义:log4j.appender.根.layout.ConversionPattern=

    •  %p:输出日志信息的优先级,即FATAL、ERROR、WARN、INFO、DEBUG。
    •  %d:输出日志日期或时间,默认格式为ISO8601,也可以在其后指定格式。例:%d{yyyy MMM dd HH:mm:ss,SSS},输出:2000年01月01日 00:00:10,000
    •  %c:输出日志信息所属的类目,通常就是所在类的全名。
    •  %F:输出日志消息产生时所在的文件名称
    •  %L:输出代码中的行号。
    •  %l:输出日志事件的发生位置,包括全类名方法名、发生的线程,以及在代码中的行号,相当于%c(%F:%L)的组合,但这个组合不包括方法名。例:cn.xiwh.test.Testlog4j.main(TestLog4j.java:10) 
    •  %m:输出代码中指定产生的日志的具体信息。
    •  %n:输出一个回车换行符,Windows平台为" ",Unix平台为" "输出日志信息换行。
    •  %r:输出自应用启动到输出该log信息耗费的毫秒数。
    •  %t:输出产生该日志事件的线程名。
    •  %x:输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
    •  %%:输出一个"%"字符。
    • [QC]:是log信息的开头,可以为任意字符,一般为项目简称。
    • -X号:X信息输出时左对齐。

    可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、及文本的对齐方式。例:

    1). %20c:指定输出类的名称,最小的宽度是20,如果类的名称小于20,默认的情况下右对齐。

    2). %-20c:指定输出类的名称,最小的宽度是20,如果类的名称小于20,"-"号指定左对齐。 

    3). %.30c:指定输出类的名称,最大的宽度是30,如果类的名称大于30就会将左边多出的字符截掉,但小于30也不会有空格。

    4). %20.30c:如果类的名称小于20就补空格并且右对齐,如果其名称大于30就从左边较远输出的字符截掉。

    5. 配置文件 log4j.properties

    ### 配置日志级别及appenderName ###
    log4j.rootLogger=error,console,debugFileAppender,errorFileAppender,dailyRollingFile,rollingFile,mail
    
    ### 配置输出信息到控制抬 ###
    log4j.appender.console=org.apache.log4j.ConsoleAppender
    #默认值是System.out,指定输出控制台。
    log4j.appender.console.Target=System.out
    log4j.appender.console.layout=org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern=[%-5p] [%d{yyyy-MM-dd HH:mm:ss,SSS}] method:%l%n%m%n
    
    ### 配置输出DEBUG级别以上的日志文件到> D://logs/debug.log ###
    log4j.appender.debugFileAppender=org.apache.log4j.FileAppender
    log4j.appender.debugFileAppender.File=D://logs/debug.log
    log4j.appender.debugFileAppender.Append=true
    log4j.appender.debugFileAppender.Threshold=DEBUG 
    log4j.appender.debugFileAppender.layout=org.apache.log4j.PatternLayout
    log4j.appender.debugFileAppender.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    
    ### 配置输出ERROR级别以上的日志文件到> D://logs/error.log ###
    log4j.appender.errorFileAppender=org.apache.log4j.FileAppender
    log4j.appender.errorFileAppender.File=D://logs/error.log 
    log4j.appender.errorFileAppender.Append=true
    log4j.appender.errorFileAppender.Threshold=ERROR 
    log4j.appender.errorFileAppender.layout=org.apache.log4j.PatternLayout
    log4j.appender.errorFileAppender.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    
    ### 配置输出DEBUG级别以上的日志文件到> D://logs/debug.log 并且每天都创建一个文件 ###
    log4j.appender.dailyRollingFile=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.dailyRollingFile.File=D://logs/debug.log
    log4j.appender.dailyRollingFile.Append=true
    log4j.appender.dailyRollingFile.Threshold=DEBUG
    log4j.appender.dailyRollingFile.layout=org.apache.log4j.PatternLayout
    log4j.appender.dailyRollingFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    
    ### 配置输出DEBUG级别以上的日志文件到> D://logs/debugRolling.log 且大小到达指定尺寸的时候产生一个新的文件 ###
    log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
    #指定消息输出到> D://logs/debugRolling.log文件
    log4j.appender.rollingFile.File=D://logs/debugRolling.log
    #默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
    log4j.appender.rollingFile.Append=true
    #指定日志消息的输出最低层次
    log4j.appender.rollingFile.Threshold=DEBUG
    #后缀可以是KB、MB或者是GB,在日志文件到达该大小时,将会自动滚动,即将原来的内容移到debug.log.1文件。
    log4j.appender.rollingFile.MaxFileSize=10KB
    #指定可以产生的滚动文件的最大数
    log4j.appender.rollingFile.MaxBackupIndex=1
    log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout
    log4j.appender.rollingFile.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
    
    ### 配置输出到邮件 ###
    log4j.appender.mail=org.apache.log4j.net.SMTPAppender
    # 日志的错误级别
    log4j.appender.mail.Threshold=DEBUG
    # 缓存文件大小,日志达到10K时发送Email
    log4j.appender.mail.BufferSize=10
    # 发送邮件的服务器
    log4j.appender.mail.SMTPHost=smtp.163.com
    # 邮件的标题
    log4j.appender.mail.Subject=Log4J DebugMessage
    # 邮箱地址
    log4j.appender.mail.SMTPUsername=test@163.com
    # 密码
    log4j.appender.mail.SMTPPassword=test
    # 发件人
    log4j.appender.mail.From=test@163.com
    # 收件人
    log4j.appender.mail.To=receive@163.com
    # 日志PatternLayout
    log4j.appender.mail.layout=org.apache.log4j.PatternLayout
    # 日志的格式
    log4j.appender.mail.layout.ConversionPattern=[DebugMessage] %d - %c -%-4r [%t] %-5p %c %x - %m%n
  • 相关阅读:
    从TimeQuest角度看set_max_delay
    stm32的窗口看门狗的一点发现
    UcosII 就绪表的理解
    关于stm32 APB总线上的"接口时钟使能"与"外设时钟使能"
    关于STM32单片机GPIO口上拉与下拉输入
    从TimeQuest角度看create_generated_clock
    201871010133 赵永军《面向对象程序设计(java)》第六、七周学习总结
    201871010133赵永军《面向对象程序设计(java)》第十一周学习总结
    201871010133赵永军《面向对象程序设计(java)》第二周学习总结
    201871010133赵永军《面向对象程序设计(java)》第十二周学习总结
  • 原文地址:https://www.cnblogs.com/deityjian/p/12530019.html
Copyright © 2020-2023  润新知