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来自定义输出目的地。