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

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

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.测试过程

项目代码结构如下

2.1运行效果


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

2.2 调试总结一下

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

原文地址:https://www.cnblogs.com/leeethan/p/12159108.html

时间: 2024-08-13 18:20:57

junit小试log4j及xml配置文件说明的相关文章

【XML配置文件读取】使用jdom读取XML配置文件信息

在项目中我们经常需要将配置信息写在配置文件中,而XML配置文件是常用的格式. 下面将介绍如何通过jdom来读取xml配置文件信息. 配置文件信息 <?xml version="1.0" encoding="UTF-8"?> <config> <base-config> <stringValue>Hello world</stringValue> <integerValue>8</integ

Spring框架[一]——spring概念和ioc入门(ioc操作xml配置文件)

Spring概念 spring是开源的轻量级框架(即不需要依赖其他东西,可用直接使用) spring核心主要两部分 aop:面向切面编程,扩展功能不是修改源代码来实现: ioc:控制反转,比如:有一个类,在类中有个方法(非静态的方法),要调用类中的这个方法,则需要创建类的对象,使用对象调用方法.创建类对象的过程,需要new出来对象:而ioc则是将对象的创建不是通过new方式实现,而是交给spring配置来创建对象(即,将对象的创建交给spring来管理): spring是一站式框架 spring

maven+SSM+shiro+junit+jetty+log4j环境配置的最佳实践

思路大致是 jetty插件 -> junit -> SpringMVC -> Spring -> Mybatis整合 -> shiro整合 -> log4j pom中的依赖跟着思路一批一批的来 创建项目 1.eclipse中创建一个maven项目,Packing选war, Project Facts的Dynamic Web Module改成3.1,Java改成1.8. 2.创建后用Java EE Tools -> Generate Deployment Descr

junit测试用例加载spring配置文件

junit加载pom引用项目的xml配置文件,如果定义了<beans profile="dev">,必须在测试用例类上面加上标记 @ActiveProfiles("product"),否则spring找不到<beans profile="dev">里面的配置.提示错误信息: No bean named '*Mongo' is defined

setting.xml配置文件 --转载

转载出处:http://www.cnblogs.com/yakov/archive/2011/11/26/maven2_settings.html 在此,简单的说下 setting.xml 和 pom.xml这两各配置文件,到此是怎样? setting.xml setting.xml,这个配文件,是全局的. 比如你的是构建,web项目.我的是Hadoop和spark项目. setting这个文件,你我都可以是一样的.因为它是全局的配置,相当于里面只要写入阿狸开源私服,达内私服,开源中国私服等.就

SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释

SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释 2016-04-14 23:40 13030人阅读 评论(2) 收藏 举报 分类: SSM(7) 这几天一直在整合SSM框架,虽然网上有很多已经整合好的,但是对于里面的配置文件并没有进行过多的说明,很多人知其然不知其所以然,经过几天的搜索和整理,今天总算对其中的XML配置文件有了一定的了解,所以拿出来一起分享一下,希望有不足的地方大家批评指正~~~ 首先   这篇文章暂时只对框架中所要用到的配置文件进行解

Mybatis学习--XML配置文件详解

在配置的Mybatis的时候,我们可以通过一个XML来配置,也可以嵌入到其他配置文件中, 比如Spring的applicationContext.xml中. MyBatis 的 XML 配置文件包含了影响 MyBatis 行为甚深的设置和属性信息. XML 文档 的高层级结构如下: configuration 配置 properties 属性 settings 设置 typeAliases 类型命名 typeHandlers 类型处理器 objectFactory 对象工厂 plugins 插件

Spring根据XML配置文件注入属性

方法一使用setter方法 package com.swift; public class Book { private String bookName; public void setBook(String bookName) { this.bookName = bookName; } @Override public String toString() { return "Book [book=" + bookName + "]"; } } 在Spring框架中

Maven之pom.xml配置文件详解

Maven之pom.xml配置文件详解 2019-06-05 一.什么是pom? POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml.作用类似ant的build.xml文件,功能更强大.该文件用于管理:源代码.配置文件.开发者的信息和角色.问题追踪系统.组织信息.项目授权.项目的url.项目的依赖关系等等.事实上,在Maven世界中,project可以什么都没有,甚至没有代码,但是必须包含pom.xml文件.