Junit(单元测试)与Log4j(日志)的搭配

本文介绍了如何将Junit与Log4j结合使用,通过引入相关jar包,实现对Java类中特定方法的独立测试。强调了在Junit中选择要测试的方法的重要性,以及方法需为public void且无参数的要求。同时,提到了配置文件log4j2.xml在Log4j中的作用,以及Log4j的基础和高级用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

junit与Log4j搭配

首先在使用junit与Log4j的时候先映入jar包(jar包参照上篇,项目结构图所示.)

1.为什么学习junit与Log4j
木有使用Junit的时候,一个类里面只能有一个main方法,而且测试的时候只能运行main方法,如果说只想测试其中的一个方法,注释掉其它的方法.

期望:
当前类里面的方法想写几个就写个,想测试其中的一个方法,只需要在指定的方法上面右击,选择执行就可以了
java的main方法是入口函数,被打破了.
在执行目标方法的时候,先执行a(指定)方法
Junit对main方法做了封装

2.如图所示操作
这里写图片描述

3.注意:
a. 一定要在想执行的方法上右击,选择junit test.
b. 如果在类上面右击了junit Test会把当着类里面的顶着@test的方法都执行一遍.
c. 方法必须是public void 名称(随便起) ,不能有参数.

4. 在java代码中如何写?(仔细看是加注释了,@After, @Test,@Before)
示例:

package com.bjsxt.mybatis.test;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

/**
 * 有Junit的时候如何做
 * @author WangshSxt
 *
 */
public class JunitTest
{
    /**
     * 初始化
     * 
     * 在执行Junit方法之前执行
     */
    @Before
    public void init()
    {
        System.out.println("=====init=======");
        Logger logger = LogManager.getLogger();
    }

    /**
     * 销毁,关闭
     * 
     */
    @After
    public void after()
    {
        System.out.println("=====after======");
    }

    /**
     * 第一个测试方法
     */
    @Test
    public void test01()
    {
        System.out.println("======test01====");
        logger.trace("==trace==");
        logger.debug("===debug=");
        /* 字符串拼接
         * {}:占位符,
         * 参数:第二个开始,一一的标签占位符的位置
         * 将参数的值放到占位符的位置上,参数的下标值-1
         *  */
        logger.info("==info==id:{},name:{},age:{},=",1,"测试",20);
        logger.warn("==warn==");
        logger.error("===error=");

        try
        {
            /* 异常记录日志 */
            String str = null ;
            str.toString() ;
        } catch (Exception e)
        {
            /*e.printStackTrace();*/
            /* log4j记录异常
             * 异常的对象,e必须放到参数的最后一个
             *  */
            logger.error("报错了:id:{}",10,e);
        } 
    }

    /**
     * 第一个测试方法
     */
    @Test
    public void test02()
    {
        System.out.println("======test02====");
    }
}

5. 配置文件_名称必须是log4j2.xml。

6. Log4j标准版(入门)

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <!-- 级别优先级:
            trace:最低的,
            debug:一般打印一些提示信息:给开发人员看的
            info:提示信息:一般是给运维看的
            warn:警告一下
            error:代码报异常,把异常信息记录下来
         -->
        <Root level="info">
            <AppenderRef ref="STDOUT"/>
        </Root>
    </Loggers>
</Configuration>

7.Log4j高级版

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
        </Console>

        <!-- 系统打印日志 
            name:名字,唯一噢
            fileName:文件的路径,默认放到classpath中
            filePattern:文件名的规则
            %d{yyyy-MM-dd}:日期
            i:如果当天的文件超出了最大值(大小),重新改名,从1开始,依次1
            与SizeBasedTriggeringPolicy相响应,表示每1m一个文件
        -->
        <RollingRandomAccessFile name="System"
            fileName="logs/system.log" filePattern="logs/system_%d{yyyy-MM-dd}_%i.log">
            <PatternLayout
                pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"
                    modulate="true" />
                <!-- 
                    每一个文件的大小
                 -->
                <SizeBasedTriggeringPolicy size="1M" />
            </Policies>
        </RollingRandomAccessFile>
    </Appenders>


    <Loggers>
        <!-- 级别优先级:
            trace:最低的,
            debug:一般打印一些提示信息:给开发人员看的
            info:提示信息:一般是给运维看的
            warn:警告一下
            error:代码报异常,把异常信息记录下来
         -->
        <Root level="info">
            <AppenderRef ref="STDOUT"/>

            <!-- 引入日志记录文件的标签配置名称 -->
            <AppenderRef ref="System"/>
        </Root>
    </Loggers>
</Configuration>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值