zoukankan      html  css  js  c++  java
  • Log4j常用的配置说明

     

    出自Icafe8Wiki

    Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件log4j.properties。

    下面将介绍使用log4j.properties文件作为配置文件的方法,以isp平台log4j.properties为例:

    log4j.rootLogger=ERROR,errorfilelog4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.errorfile.File=c:/isplog/error.loglog4j.appender.errorfile.MaxBackupIndex=365 log4j.appender.errorfile.Threshold=ERRORlog4j.appender.errorfile.layout=org.apache.log4j.PatternLayoutlog4j.appender.errorfile.layout.ConversionPattern=%d %p %m%rnlog4j.appender.filterLog=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.filterLog.File=c:/isplog/filterLog.loglog4j.appender.filterLog.MaxBackupIndex=365log4j.appender.filterLog.layout=org.apache.log4j.PatternLayoutlog4j.appender.filterLog.layout.ConversionPattern=%d %p %m%rnlog4j.appender.eventProcessLog=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.eventProcessLog.File=c:/isplog/eventProcessLog.loglog4j.appender.eventProcessLog.layout=org.apache.log4j.PatternLayoutlog4j.appender.eventProcessLog.layout.ConversionPattern=%d %p %m%rnlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%rnlog4j.logger.com.shunwang=ERRORlog4j.logger.com.shunwang.common.filter.SWContextfilter=INFO,filterLoglog4j.logger.com.shunwang.isp.schedul.EventProcessThread=INFO,eventProcessLog

    • 整理了一下,配置大致可以分为三部分:
    1、配置根Logger

    Logger 负责处理日志记录的大部分操作。

    其语法为:

    log4j.rootLogger = [ level ] , appenderName, appenderName, …

    如:log4j.rootLogger=ERROR,errorfile(把ERROR以上等级日志信息输出到errorfile)。

    其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,只有等于及高于这个级别的才进行处理,则应用程序中所有DEBUG级别的日志信息将不被打印出来。ALL:打印所有的日志,OFF:关闭所有的日志输出。 appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。 编辑] 2、配置日志信息输出目的地 Appender

    Appender 负责控制日志记录操作的输出。

    其语法为:

    log4j.appender.appenderName = fully.qualified.name.of.appender.classlog4j.appender.appenderName.option1 = value1…log4j.appender.appenderName.optionN = valueN

    这里的appenderName可任意起名。

    例子中配置了4个输出源,appenderName分别为:errorfile,filterLog,eventProcessLog,stdout。

    以errorfile为例:

    (1)log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender 定义名为errorfile的输出端是哪种类型,这里定义的是每天产生一个日志文件。

    Log4j提供的输出端有以下几种:
    org.apache.log4j.ConsoleAppender(控制台),
    org.apache.log4j.FileAppender(文件),
    org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
    org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),可通过log4j.appender.R.MaxFileSize=100KB设置文件大小,还可通过 log4j.appender.appenderName.MaxBackupIndex=1设置为保存一个备份文件。
    org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
      ①.ConsoleAppender选项
        Threshold=WARN:指定日志消息的输出最低层次。
        ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
        Target=System.err:默认情况下是:System.out,指定输出控制台
      ②.FileAppender 选项
        Threshold=WARN:指定日志消息的输出最低层次。
        ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
        File=mylog.txt:指定消息输出到mylog.txt文件。
        Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
      ③.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: 每分钟
      ④.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:指定可以产生的滚动文件的最大数。

    (2)log4j.appender.errorfile.File=c:/isplog/error.log 指定输出端路径;

    (3)log4j.appender.errorfile.MaxBackupIndex=365 指定可以产生的滚动文件的最大数为365;

    (4)log4j.appender.errorfile.Threshold=ERROR 指定日志消息的输出最低层次;

    (5)log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout Layout 负责格式化Appender的输出,这里指定errorfile输出端的layout为可以灵活地指定布局模式。

    Log4j提供的layout有以下几种:
    org.apache.log4j.HTMLLayout(以HTML表格形式布局),
    org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
    org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
    org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)。
     ①.HTMLLayout 选项
      LocationInfo=true:默认值是false,输出java文件名称和行号
      Title=my app file: 默认值是 Log4J Log Messages.
     ②.PatternLayout 选项
      ConversionPattern=%m%n :指定怎样格式化指定的消息。

    (6)log4j.appender.errorfile.layout.ConversionPattern=%d %p %m%rn 格式化errorfile输出端的日志信息。

    Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下:
     %m 输出代码中指定的消息
     %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
     %r 输出自应用启动到输出该log信息耗费的毫秒数
     %c 输出所属的类目,通常就是所在类的全名
     %t 输出产生该日志事件的线程名
     %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
     %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
     %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
    3.定义域的级别

    log4j.logger.com.shunwang=ERROR 把这个包下出现的错误的等级设为ERROR;
    log4j.logger.com.shunwang.common.filter.SWContextfilter=INFO,filterLog 把com.shunwang.common.filter.SWContextfilter这个类的等级设为INFO,输出源为filterLog。

    介绍几个常用的框架域的设置,这些包的设置可根据项目的实际情况而自行定制:

    log4j.logger.org.apache.commons=ERROR
    log4j.logger.org.apache.struts=WARN 这两句是struts的包。
    log4j.logger.org.springframework=DEBUG 此句为Spring的包。
    log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN
    log4j.logger.org.hibernate=DEBUG 这两句是hibernate的包。

     

  • 相关阅读:
    转:CRF++
    ProBase
    图形数据库 Neo4j 开发实战
    Linux 下升级python和安装pip
    TensorFlow (RNN)深度学习 双向LSTM(BiLSTM)+CRF 实现 sequence labeling 序列标注问题 源码下载
    开源项目kcws代码分析--基于深度学习的分词技术
    文本情感分类(二):深度学习模型
    文本情感分类(一):传统模型
    重要博文
    LSTM 文本情感分析/序列分类 Keras
  • 原文地址:https://www.cnblogs.com/alaricblog/p/3278345.html
Copyright © 2011-2022 走看看