• DailyRollingFileAppender的使用


    DailyRollingFileAppender是日志记录软件包Log4J中的一个Appender,它能够按一定的频度滚动日志记录文件。

    如果您不熟悉Log4J,建议阅读一下 使用Log4j进行日志记录

    我们可以按下面的方式配置DailyRollingFileAppender:

    log4j.rootCategory=INFO,file
    log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.file.DatePattern='.'yyyy-MM-dd
    log4j.appender.file.File=run.log
    log4j.appender.file.Append=true
    log4j.appender.file.Threshold=INFO
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%c %x - %m%n   

    在DailyRollingFileAppender中可以指定monthly(每月)、 weekly(每周)、daily(每天)、half-daily(每半天)、hourly(每小时)和minutely(每分钟)六个频度,这是通过为 DatePattern选项赋予不同的值来完成的。DatePattern选项的有效值为:

    • '.'yyyy-MM,对应monthly(每月)
    • '.'yyyy-ww,对应weekly(每周)
    • '.'yyyy-MM-dd,对应daily(每天)
    • '.'yyyy-MM-dd-a,对应half-daily(每半天)
    • '.'yyyy-MM-dd-HH,对应hourly(每小时)
    • '.'yyyy-MM-dd-HH-mm,对应minutely(每分钟)

    DatePattern中不用处理的文字要放到单引号(')中,如上面的(.)。如果您对此有疑问可以查阅SimpleDateFormat的文档。DailyRollingFileAppender中使用这个类来处理DatePattern。

    DatePattern格式化之后的文本作为文件名字的后缀。DailyRollingFileAppender不支持格式化之后的文本作为文件名字的前缀。

    DailyRollingFileAppender在每一个日志事件(LoggingEvent)附加(append)之前检查是否需要附加。也就是说如果在一个滚动区间中没有任何日志记录,那么这个区间的日志记录文件就不会形成。

     

    在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义。定义步骤就是对Logger、Appender及Layout的分别使用。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是java properties(key=value)【Java特性文件(键=值)】。(这里只说明properties文件) 

    1、配置根Logger


          其语法为: 
          log4j.rootLogger = [ level ] , appenderName1, appenderName2, …
          level : 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。appenderName:就是指定日志信息输出到哪个地方(这个appenderName其实就是你自己定义的appender的名称)。您可以同时指定多个输出目的地。 
         例如:log4j.rootLogger=info,A1,B2,C3 

    2、配置日志信息输出目的地


          其语法为: 
          log4j.appender.appenderName = fully.qualified.name.of.appender.class  //
          "fully.qualified.name.of.appender.class" 可以指定下面五个目的地中的一个: 

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

                 1.ConsoleAppender选项 
                        Threshold=WARN:指定日志消息的输出最低层次。 
                        ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 
                        Target=System.err:默认情况下是:System.out,指定输出控制台 
                  2.FileAppender 选项 
                        Threshold=WARN:指定日志消息的输出最低层次。 
                        ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 
                        File=mylog.txt:指定消息输出到mylog.txt文件。 
                        Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。 
                3.DailyRollingFileAppender 选项 
                        Threshold=WARN:指定日志消息的输出最低层次。 
                        ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 
                        File=mylog.txt:指定消息输出到mylog.txt文件。 
                        Append=false:默认值是true,即以追加的方式将消息增加到指定文件中,false指将消息覆盖指定的文件内容。 
                        DatePattern=''.''yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下: 
                        1)''.''yyyy-MM: 每月 
                        2)''.''yyyy-ww: 每周  
                        3)''.''yyyy-MM-dd: 每天 
                        4)''.''yyyy-MM-dd-a: 每天两次 
                        5)''.''yyyy-MM-dd-HH: 每小时 
                        6)''.''yyyy-MM-dd-HH-mm: 每分钟 
                4.RollingFileAppender 选项 
                        Threshold=WARN:指定日志消息的输出最低层次。 
                        ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 
                        File=mylog.txt:指定消息输出到mylog.txt文件。 
                        Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。 
                        MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。 
                        MaxBackupIndex=2:指定可以产生的滚动文件的最大数。 

    3、配置日志信息的格式


            其语法为: 
      1). log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
                  "fully.qualified.name.of.layout.class" 可以指定下面4个格式中的一个: 
               1.org.apache.log4j.HTMLLayout(以HTML表格形式布局), 
             2.org.apache.log4j.PatternLayout(可以灵活地指定布局模式), 
             3.org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), 
             4.org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 
                       1.HTMLLayout 选项 
                          LocationInfo=true:默认值是false,输出java文件名称和行号 
                          Title=my app file: 默认值是 Log4J Log Messages. 
                       2.PatternLayout 选项 
                          ConversionPattern=%m%n :指定怎样格式化指定的消息。 
                       3.XMLLayout  选项 
                          LocationInfo=true:默认值是false,输出java文件和行号 
            2). log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ss} %c %m%n
               这里需要说明的就是日志信息格式中几个符号所代表的含义: 
               -X号: X信息输出时左对齐; 
                       %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL, 
                       %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921 
                       %r: 输出自应用启动到输出该log信息耗费的毫秒数 
                       %c: 输出日志信息所属的类目,通常就是所在类的全名 
                       %t: 输出产生该日志事件的线程名 
                       %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10) 
                       %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。 
                       %%: 输出一个"%"字符 
                       %F: 输出日志消息产生时所在的文件名称 
                       %L: 输出代码中的行号 
                       %m: 输出代码中指定的消息,产生的日志具体信息 
                       %n: 输出一个回车换行符,Windows平台为" 
    ",Unix平台为"
    "输出日志信息换行 
                可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如: 
                         1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。 
                         2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。 
                         3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。 
                         4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边交远销出的字符截掉。

     

     

    转载:http://blog.csdn.net/zhoulenihao/article/details/24995397

  • 相关阅读:
    linux MySQL 初始化数据库
    linux 建立 MySQL 账号
    linux MySQL 安装
    Background-Size
    .net文件压缩和解压及中文文件夹名称乱码问题
    C# 浅拷贝与深拷贝区别
    移动端手势库hammerJS 2.0.4官方文档翻译
    期待已久的2012年度最佳jQuery插件揭晓
    Hammer.js
    jQuery Validate验证框架详解
  • 原文地址:https://www.cnblogs.com/zengdingxin/p/5135008.html
Copyright © 2020-2023  润新知