• 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

  • 相关阅读:
    Centos 设置时区
    编译安装squid3.1亲测
    单点登录(SSO)的实现—通行证的基本原理
    squid反向代理基本概述及性能事项
    tmpfs加速并降低squid负载(一)
    sencha touch 2中list控件分组排序
    解决Sencha Touch 2 MVC部署App.json不被识别问题
    st大量参数提交方案参考
    Sencha Touch 载入base64格式的图片数据
    解决Sencha Touch 2 MVC部署App.json不被识别问题
  • 原文地址:https://www.cnblogs.com/qitian1/p/6463052.html
Copyright © 2020-2023  润新知