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

    今天看了看log4j,忽然发现已经忘记了这些配置的含义,博客里尽然也没有log4j的配置文件信息。
    补一个,来自 “子 孑” 博客,请务必保留此出处http://zhangjunhd.blog.51cto.com/113473/21014
     
    Apache Log4j配置说明
    本文详细介绍Log4j的所有配置属性。
    author: ZJ 07-3-17
    1.Log4j简介
    Log4j是Apache的一个开源项目,它允许开发者以任意间隔输出日志信息。Log4j主要由三大类组件构成:
    1)Logger-负责输出日志信息,并能够对日志信息进行分类筛选,即决定哪些日志信息应该被输出,哪些该被忽略。Loggers组件输出日志信息时分为5个级别:DEBUG、INFO、WARN、ERROR、FATAL。这五个级别的顺序是:DEBUG<INFO<WARN<ERROR<FATAL。如果设置某个Logger组件的级别是P,则只有级别比P高的日志信息才能输出。Logger是有继承关系的,最上层是rootLogger,定义的其他Logger都会继承rootLogger。
     
    2)Appender-定义了日志输出目的地,指定日志信息应该被输出到什么地方。输出的目的地可以是控制台、文件或网络设备。
     
    3)Layout-通过在Appender的后面附加Layout来实现格式化输出。
    一个Logger可以有多个Appender,每个Appender对应一个Layout。
    2.Loggers
    Logger的定义格式:log4j.[loggername]=[level],appenderName,appenderName,…
    这里level是指Logger的优先级,appenderName是日志信息的输出地,可以同时定义多个输出地。
    3.Appenders
    Appender的定义格式:
    log4j.appender.appenderName = fully.qualified.name.of.appender.class  
    // "fully.qualified.name.of.appender.class" 可以指定下面五个目的地中的一个:
    Appender类及其作用列表
    Appender类名
    作 用
    org.apache.log4j.ConsoleAppender
    将日志输出到控制台
    org.apache.log4j.FileAppender
    将日志输出到文件
    org.apache.log4j.DailyRollingFileAppender
    每天产生一个日志文件
    org.apache.log4j.RollingFileAppender
    文件大小到达指定尺寸时产生一个新的文件
    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:每周滚动一次文件,即每周产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下:
    '.'yyyy-MM: 每月
    '.'yyyy-ww: 每周 
    '.'yyyy-MM-dd: 每天
    '.'yyyy-MM-dd-a: 每天两次
    '.'yyyy-MM-dd-HH: 每小时
    '.'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:指定可以产生的滚动文件的最大数。
    4.Layouts
    Layout的定义格式:
    部分一log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
                  //"fully.qualified.name.of.layout.class" 可以指定下面4个格式中的一个:
    Layout类及其作用列表
    Layout类名
    作 用
    org.apache.log4j.HTMLLayout
    以HTML表格形式布局
    org.apache.log4j.PatternLayout
    可以灵活地指定布局模式
    org.apache.log4j.SimpleLayout
    包含日志信息的级别和信息字符串
    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文件和行号。
     
    部分二 log4j.appender.A1.layout.ConversionPattern=
    %-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
    这里需要说明的就是日志信息格式中几个符号所代表的含义:
    1)-X号: X信息输出时左对齐。
    2)%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL。
    3)%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921。
    4)%r: 输出自应用启动到输出该log信息耗费的毫秒数。
    5)%c: 输出日志信息所属的类目,通常就是所在类的全名。
    6)%t: 输出产生该日志事件的线程名。
    7)%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)。
    8)%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
    9)%%: 输出一个"%"字符。
    10)%F: 输出日志消息产生时所在的文件名称。
    11) %L: 输出代码中的行号。
    12)%m: 输出代码中指定的消息,产生的日志具体信息。
    13)%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字符,就从左边交远销出的字符截掉。
    5.Apache Log介绍集
    6.参考资料
    [1] 赵强,精通JSP编程,电子工业出版社
    [2] Log4j配置过程
    [url]http://hi.baidu.com/hunqiu/blog/item/7386ad6e[/url]59c5a4da81cb4a31.html

    本文出自 “子 孑” 博客,请务必保留此出处http://zhangjunhd.blog.51cto.com/113473/21014

  • 相关阅读:
    LeetCode 230. 二叉搜索树中第K小的元素(Kth Smallest Element in a BST)
    LeetCode 216. 组合总和 III(Combination Sum III)
    LeetCode 179. 最大数(Largest Number)
    LeetCode 199. 二叉树的右视图(Binary Tree Right Side View)
    LeetCode 114. 二叉树展开为链表(Flatten Binary Tree to Linked List)
    LeetCode 106. 从中序与后序遍历序列构造二叉树(Construct Binary Tree from Inorder and Postorder Traversal)
    指针变量、普通变量、内存和地址的全面对比
    MiZ702学习笔记8——让MiZ702变身PC的方法
    你可能不知道的,定义,声明,初始化
    原创zynq文章整理(MiZ702教程+例程)
  • 原文地址:https://www.cnblogs.com/love-julia/p/3709210.html
Copyright © 2011-2022 走看看