3.日志工具jdklogging,log4j和commons-logging总结

时间:2021-09-26 22:03:43

  1。把前面的介绍总结下:

   a)严格地说,commons-logging不是个日志控件,本身没有日志功能。它只是统一了JDK Logging与Logg4j的API,

    并把日志功能交给JDK Logging或者Log4j.对于不能确定日志方式的系统,是个不错的选择。

   b)Log4j的执行效率

    Log4j内部做了大量的优化,缓存功能。Log4j只是在初始化时候打开文件,并保持对文件的写控制,知道系统结束才关闭文件。

    这样就使I/O次数达到最小,提高了效率。

   c)设置log4j.properties文件名称以及路径。

    如果不使用默认的文件名log4j.properties,也可以用PropertyConfigurator类指定配置文件路径.比如:

                PropertyConfigurator.configure("H:\\workspace\\loggtest\\src\\com\\logging\\commons\\log4j_demo.properties");

   d)Log4j的xml配置方式:只需要修改为Log4j.xml配置代码不变偏可。

<?xml version="1.0" encoding="UTF-8"?>    
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">    
       
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/' >    
       
    <appender name="myConsole" class="org.apache.log4j.ConsoleAppender">    
        <layout class="org.apache.log4j.PatternLayout">    
            <param name="ConversionPattern"       
                value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" />    
        </layout>    
        <!--过滤器设置输出的级别-->    
        <filter class="org.apache.log4j.varia.LevelRangeFilter">    
            <param name="levelMin" value="debug" />    
            <param name="levelMax" value="warn" />    
            <param name="AcceptOnMatch" value="true" />    
        </filter>    
    </appender> 
      
    <appender name="activexAppender" class="org.apache.log4j.DailyRollingFileAppender">    
        <param name="File" value="H:/workspace/loggtest/logs/default.log" />      
        <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />      
        <layout class="org.apache.log4j.PatternLayout">    
         <param name="ConversionPattern"      
            value="[%d{MMdd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n" />    
        </layout>      
    </appender>    
       
    <!-- 指定logger的设置,additivity指示是否遵循缺省的继承机制-->    
    <logger name="com.runway.bssp.activeXdemo" additivity="false">    
        <priority value ="info"/>      
        <appender-ref ref="activexAppender" />      
    </logger>    
    
    <!-- 根logger的设置-->    
    <root>    
        <priority value ="debug"/>    
        <appender-ref ref="myConsole"/>    
        <appender-ref ref="activexAppender"/>       
    </root>    
</log4j:configuration>
d)。log4j还支持把日志记录到数据库,Socket,smtp邮件等等。用户可以通过继承AppenderSkeleton来自定义输出目的地。