junit小试log4j及xml配置文件说明

????上篇文章介绍了java日志框架使用情况,以及xml配置文件的简单说明。但主要还是根据别人的博客整理一下知识结构,只能是纸上谈兵,本文通过junit测试框架来玩玩log4j。
junit小试log4j及xml配置文件说明

1.junit+log4j测试环境准备

1.环境或工具
    <1>idea开发工具;
    <2>java project, 学helloworld时建立的第一个项目;
    <3>mvn repository下载三个jar包:hamcrest-core-1.3.jar,junit-4.12.jar,log4j-1.2.17.jar,把三个jar包导入到第2步的项目中(注意idea和导入jar包和eclipse不一样)
    <4>编写测试代码

2.测试代码
    <1>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="stdout" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %p [%c] - %m%n"/>
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <!--最小级别-->
            <param name="LevelMin" value="INFO"/>
        </filter>
    </appender>


    <!-- 系统启动日志输出文件 -->
    <appender name="fileAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="Encoding" value="UTF-8"/>
        <param name="File" value="/Users/tusm/IdeaProjects/tmp/log/system.log"/>  <!-- 这里要改为本地路径 -->
        <param name="DatePattern" value="'.'yyyy-MM-dd"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %p [%c] - %m%n"/>
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <!--最小级别-->
            <param name="LevelMin" value="INFO"/>
        </filter>
    </appender>


    <!-- 测试 category 配置节 -->
    <appender name="testCategoryAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="/Users/tusm/IdeaProjects/tmp/log/test_category_logs.log"/>  <!-- 这里要改为本地路径 -->
        <param name="DatePattern"  value="'.'yyyy-MM-dd-HH'.log'" />
        <layout  class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %p [%c] - %m%n"/>
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <!--最小级别-->
            <param name="LevelMin" value="INFO" />
        </filter>
    </appender>


    <!-- 测试 logger 配置节 -->
    <appender name="testAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="/Users/tusm/IdeaProjects/tmp/log/test_logger_logs.log"/>   <!-- 这里要改为本地路径 -->
        <param name="DatePattern"  value="'.'yyyy-MM-dd-HH'.log'" />
        <layout  class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %p [%c] - %m%n"/>
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <!--最小级别,小于 error 级别错误将不输出-->
            <param name="LevelMin" value="ERROR" />
        </filter>
    </appender>


    <!--自定义日志输出配置,additivity=是否继承 root 配置-->
    <category name="testCategoryLogger" additivity="false">
        <level value="INFO"></level>
        <appender-ref ref="testCategoryAppender"></appender-ref>
        <appender-ref ref="stdout"></appender-ref>
    </category>
    <!--自定义日志输出配置,additivity=是否继承 root 配置-->
    <logger name="testLogger" additivity="false">
        <!--级别-->
        <level value="INFO"></level>
        <!--输出器-->
        <appender-ref ref="testAppender"></appender-ref>
        <appender-ref ref="stdout"></appender-ref>
    </logger>


    <!--基础日志输出配置-->
    <root>
        <level value="INFO"/>
        <!--输出器-->
        <appender-ref ref="stdout"/>
        <appender-ref ref="fileAppender"/>
    </root>

</log4j:configuration>
//上篇博客中的log4j.xml示例拿过来测试

    <2>java测试代码

   public class TestLog4j_xml {
    private Logger logger = Logger.getLogger(this.getClass());

    @Test
    public void add() {
        int num = 6;
        int num2 = 2;
        logger.info(num + num2);
    }
}

2.测试过程

项目代码结构如下
junit小试log4j及xml配置文件说明

2.1运行效果

junit小试log4j及xml配置文件说明
发现log4j发出warn,后来发现是log4j.xml所在的文件夹没有设置为source目录,导致找不到该文件,改完后,运行效果如下图,且在/Users/tusm/IdeaProjects/tmp/log/目录下生成了三个log文件,就是xml文件中配置的三个appender的输出路径。
junit小试log4j及xml配置文件说明

2.2 调试总结一下

基本的测试环境搭建完成,下面就是结合测试,总结一下配置文件的各部分作用

相关推荐