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







  • 相关阅读:
    VMware虚拟机下如何安装一个64位的win7系统
    无人驾驶刚刚开始的未来
    Ruby on Rails开发Web应用的基本概念
    Hibernate学习(1)简单介绍
    Linux pipe 源代码分析
    【知识梳理1】Android触摸事件机制
    【CODEFORCES】 C. Dreamoon and Strings
    LightOJ
    [leetcode]Maximum Subarray
    25个增强iOS应用程序性能的提示和技巧 — 中级篇
  • 原文地址:https://www.cnblogs.com/fullstack/p/3911192.html
Copyright © 2011-2022 走看看