zoukankan      html  css  js  c++  java
  • Logger源码阅读(二)之PropertyConfigurator解析配置文件

    log4j可以用Java的properties进行配置。

    其解析流程大致如下:

    1.解析properties,将整个配置文件信息读取到一个Properties对象中

     1   public
     2   void doConfigure(String configFileName, LoggerRepository hierarchy) {
     3     Properties props = new Properties();
     4     FileInputStream istream = null;
     5     try {
     6       istream = new FileInputStream(configFileName);
     7       props.load(istream);
     8       istream.close();
     9     }
    10     ...
    11   }
    View Code

    2.配置日志仓库级别

    log4j.threshold=error

     将日志仓库级别设置为error

    3.配置RootLogger

    log4j.rootLogger=info,LOGFILE,CONSLE

    info:RootLogger的日志级别

    LOGFILE(CONSLE):RootLogger的日志输入器,名字可自定义,之后将会根据名称进行更具体的定义 

    log4j.appender.LOGFILE=org.apache.log4j.RollingFileAppender
    log4j.appender.LOGFILE.MaxFileSize=100MB
    log4j.appender.LOGFILE.MaxBackupIndex=10
    log4j.appender.LOGFILE.File=${log.dir}/${log.file}
    log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.LOGFILE.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss,SSS} %-5p [%t] (%C.%M:%L) %x - %m%n

    针对LOGFILE日志输出器进行配置

    4.配置LoggerFactory

    log4j提供一个默认的LoggerFactory,一般可不配置。

    5.配置Render及对指定类进行配置

    除了对仓库,RootLogger进行了配置,还可以对具体的类所对应的Logger进行配置。

    log4j.logger.org.apache.hadoop = INFO,LOGFILE1
    log4j.appender.LOGFILE1=org.apache.log4j.RollingFileAppender
    log4j.appender.LOGFILE1.MaxFileSize=100MB
    log4j.appender.LOGFILE1.MaxBackupIndex=10
    log4j.appender.LOGFILE1.File=${log.dir}/${log.file}
    log4j.appender.LOGFILE1.layout=org.apache.log4j.PatternLayout
    log4j.appender.LOGFILE1.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss,SSS} %-5p [%t] (%C.%M:%L) %x - %m%n

    针对org.apache.hadoop进行了特别配置,其级别为INFO,输出器为LOGFILE1,再然后对LOGFILE1进行一些细化配置。

    总结:配置仅仅是解析一个配置文件,然后调用一系列的set函数,真正这些配置项如何发挥作用,需要对其内部结构有一定的了解,关于这一点可参看另一篇文章。







  • 相关阅读:
    git 远程仓库 and 分支管理
    oracle 导入导出dmp
    sql if else 用法
    设置session超时的三种方式
    eclipse定制工具栏,修改工具栏
    cxf实例异常
    js 表格插入指定行
    iframe 调用父页面元素
    iframe页面刷新
    frame 和 iframe
  • 原文地址:https://www.cnblogs.com/fullstack/p/3911192.html
Copyright © 2011-2022 走看看