zoukankan      html  css  js  c++  java
  • log4j配置参考手册:log4j.properties和log4j.xml两种格式

       log4j是Java Web开发中,最常用的日志组件之一。网上关于log4j的配置满天飞,我主要是从网上学习的配置。之前的很多年,主要使用log4j.properties这种格式。后来,项目中boss使用了log4j.xml这种配置。
       关于xml配置,之前也用过,主要觉得麻烦,而且还要手动配置listener,所以基本不用。
       和boss交流了下,发现xml格式的配置,语法更全面。我主要发现了2种“高端用途” :
    1.业务日志与系统日志相分离。(这个比较有价值)
    2.配置过滤器。 (参考资料里有配置介绍)

       关于配置语法,网上有资料,有兴趣的可以查看下方的参考资料或者网上搜。不想贴没有原创性的用法示例。

       log4j.properties :最常用最简单的配置,记录不同级别的日志到控制台、文件,并且每天一个日志文件
    #log4j.rootLogger=OFF
    log4j.rootLogger=debug,CONSOLE,D,I,E
    #DEBUG,CONSOLE,FILE,ROLLING_FILE,MAIL,DATABASE 
    ###################
    # Console Appender
    ###################
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    log4j.appender.CONSOLE.Threshold=debug
    log4j.appender.CONSOLE.Target=System.out
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
    log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
    #Debug rootDailyRollingFile#####
    log4j.appender.D=org.apache.log4j.DailyRollingFileAppender 
    log4j.appender.D.Threshold=DEBUG
    log4j.appender.D.layout=org.apache.log4j.PatternLayout  
    log4j.appender.D.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
    log4j.appender.D.file=C:/log4j/briefcms-debug
    log4j.appender.DFile.DatePattern='-'yyyy-MM-dd'.log'
    #Info
    log4j.appender.I=org.apache.log4j.DailyRollingFileAppender 
    log4j.appender.I.Threshold=INFO
    log4j.appender.I.layout=org.apache.log4j.PatternLayout  
    log4j.appender.I.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
    log4j.appender.I.file=C:/log4j/briefcms-info
    log4j.appender.I.DatePattern='-'yyyy-MM-dd'.log'
    #Error
    log4j.appender.E=org.apache.log4j.DailyRollingFileAppender 
    log4j.appender.E.Threshold=ERROR
    log4j.appender.E.layout=org.apache.log4j.PatternLayout  
    log4j.appender.E.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
    log4j.appender.E.file=C:/log4j/briefcms-error
    log4j.appender.E.DatePattern='-'yyyy-MM-dd'.log' 

    log4j.xml:实现业务日志与系统日志相分离
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <!-- Appenders -->
    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out" />
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss} %-5p] [%t] %c{2} - %X{loginUser} %X{userip} %m%n" />
    </layout>
    </appender>

    <appender name="DEFAULT-APPENDER" class="org.apache.log4j.DailyRollingFileAppender">    
    <param name="File" value="C:/log4j/default.log" /><!-- 设置日志输出文件名 -->  
    <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />   
     <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->  
    <param name="Append" value="true" />  
    <param name="MaxBackupIndex" value="10" />  
    <layout class="org.apache.log4j.PatternLayout">  
    <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss} %-5p] [%t] %c{2} - %X{loginUser} %X{userip} %m%n" />  
    </layout>  
    </appender>
    <appender name="BIZ-APPENDER" class="org.apache.log4j.DailyRollingFileAppender">  
    <param name="File" value="C:/log4j/biz.log" />   
    <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />   
    <param name="Threshold" value="INFO" />  
    <layout class="org.apache.log4j.PatternLayout">  
    <param name="ConversionPattern"  value="[%d{yyyy-MM-dd HH:mm:ss} %-5p] [%t] %c{2} - %X{loginUser} %X{userip} %m%n" />  
    </layout>   
    </appender> 
    <appender name="ERROR-APPENDER" class="org.apache.log4j.DailyRollingFileAppender">  
    <param name="File" value="C:/log4j/error.log" />   
    <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />   
    <param name="Threshold" value="ERROR" />  
    <layout class="org.apache.log4j.PatternLayout">  
    <param name="ConversionPattern"  value="[%d{yyyy-MM-dd HH:mm:ss} %-5p] [%t] %c{2} - %X{loginUser} %X{userip} %m%n" />  
    </layout>   
    </appender>
    <!-- Application Loggers -->
    <logger name="cn.fansunion" additivity="false">
    <level value ="debug"/>   
    <appender-ref ref="BIZ-APPENDER" />   
    <appender-ref ref="ERROR-APPENDER" />
    </logger>

    <!-- Root Logger -->
    <root>
    <level value="debug" />
    <appender-ref ref="DEFAULT-APPENDER"/>  
    <appender-ref ref="ERROR-APPENDER"/>
    </root>
    </log4j:configuration> 

    参考资料:
    http://blog.csdn.net/coolcoffee168/article/details/6368924
    http://zhangxiang390.iteye.com/blog/258455
    http://www.cnblogs.com/tqsummer/archive/2010/08/26/1809232.html

    http://blog.csdn.net/jueshengtianya/article/details/8900427 

    原文首发:http://fansunion.cn/article/detail/554.html

  • 相关阅读:
    年末反思
    Flink运行时架构
    Phoenix 启动报错:Error: ERROR 726 (43M10): Inconsistent namespace mapping properties. Cannot initiate connection as SYSTEM:CATALOG is found but client does not have phoenix.schema.
    Clickhouse学习
    Flink简单认识
    IDEA无法pull代码到本地,Can't Update No tracked branch configured for branch master or the branch doesn't exist.
    第1章 计算机系统漫游
    简单的 Shell 脚本入门教程
    开源≠免费 常见开源协议介绍
    MySQL 视图
  • 原文地址:https://www.cnblogs.com/qitian1/p/6463053.html
Copyright © 2011-2022 走看看