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函数,真正这些配置项如何发挥作用,需要对其内部结构有一定的了解,关于这一点可参看另一篇文章。







  • 相关阅读:
    [CF750D] New Year and Fireworks(暴力,规律,dfs)
    [HDOJ6034] Balala Power!(模拟,贪心,大数)
    [HIHO1560] H国的身份证号码II(dp,计数,矩阵快速幂)
    [HIHO1555] 四次方根(递推,容斥,矩阵快速幂)
    [HIHO1554] 最短的 Nore0061(DP)
    [CF831D] Office Keys(二分,贪心)
    [HDOJ6156] Palindrome Function(数位dp, 枚举)
    团体程序设计天梯赛-练习集-L1-029. 是不是太胖了
    团体程序设计天梯赛-练习集-L1-028. 判断素数
    团体程序设计天梯赛-练习集-L1-027. 出租
  • 原文地址:https://www.cnblogs.com/fullstack/p/3911192.html
Copyright © 2011-2022 走看看