目录
1.介绍Junit
2.Junit的使用
3.介绍log4j
4.log4j的使用
一、介绍Junit
Junit是一个java语言单元测试的框架,这款框架旨在对java程序进行单元测试,并且写好的方法不需要在主函数中进行调用就可测试。
单元测试也就是常说的白盒测试。
二、Junit的使用
Junit 的使用非常简单,大致可分为一下步骤
1.导入jar包
jar包地址如下http://www.mvnjar.com/junit/junit/4.12/detail.html
2.编写测试方法
测试方法有如下特征:
1.不能有返回值
2.不能有参数
3.在测试方法上使用注解
常用的junit注解有:
@Test:测试的方法注解
@Ignore:不被测试的方法注解
@Before:每次测试之前的方法注解,会在每一个测试方法之前运行(如果有多个测试方法则会多次运行)
@After:每次测试之后的方法注解,会在每一个测试方法之后运行(如果有多个测试方法则会多次运行)
@BeforeClass:在所有测试方法测试之前运行,只会在还没有进行测试的方法之前运行,优先级是最高的(只会运行一次)
@AfterClass:在所有测试方法测试之后运行,只会在所有测试方法之后运行,优先级是最高的(只会运行一次)
4.进行Junit单元测试
Junit单元测试demo如下:
package com.demo.junit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; import junit.framework.Assert; public class Cal { @BeforeClass public static void init(){ System.out.println("初始化完毕"); } @AfterClass public static void destroy(){ System.out.println("销毁完毕"); } @Ignore public void test1(){ System.out.println("test1"); } @Test public void test2(){ System.out.println("test2"); Assert.assertEquals(2, 3); } @Test public void test3(){ System.out.println("test3"); Assert.assertTrue(false); } }
3、介绍log4j
Apache Log4j是一个基于java的日志记录工具。
程序中用户的某些操作可以用日志记录下来,程序异常也可以用日志记录下来。
这样的好处在于----程序出错了,可以直接查看日志文件进行错误定位。
4、log4j的使用
日志的结构:
1、日志优先级
OFF FATAL> ERROR >WARN >INFO>DEBUG + ALL
2、日志输出目的地(Appender)
ConsoleAppender:输出到控制台
FileAppender:输出到文件
DailyRollingAppender:每天产生一个日志文件
RollingFileAppender:日志文件产生到一定的大小后,再自动创建新的日志文件。
3、日志的输出格式
HTMLPattern HTML格式
SimpleLayout 基本格式(日志级别和信息)
PatterLayout 灵活指定
具体的输出格式
%n 换行
%m 日志的内容
%p 日志的级别 priority
%l 日志发生的位置 location
%d 日志发生的时间
%t 日志发生的线程名
%r 表示从启动应用到写入该日志花费的毫秒数
使用步骤:
1.导入jar包
jar包地址:http://www.mvnjar.com/com.opsbears.webcomponents.application.slf4j/log4j/1.0.0-alpha13/detail.html
2.创建日志配置文件
在项目的src下创建名为log4j.properties的文件
一下是一个自定义的一个模板
#定义log4j的根(制定日志级别和Appender) log4j.rootLogger = INFO,A1,A2,A3 #定义日志目的地1 控制台Appender log4j.appender.A1 = org.apache.log4j.ConsoleAppender #定义A1的输出格式(灵活的输出格式) log4j.appender.A1.layout = org.apache.log4j.PatternLayout #定义A1具体的输出格式 log4j.appender.A1.layout.ConversionPattern = [%p](%l) -->%m[%r][%t]--%d%n #定义日志目的地2 控制台Appender log4j.appender.A2 = org.apache.log4j.FileAppender #定义A2的输出格式(灵活的输出格式) log4j.appender.A2.layout = org.apache.log4j.PatternLayout #定义A2具体的输出格式 log4j.appender.A2.layout.ConversionPattern = [%p](%l) -->%m[%r][%t]--%d%n #定义日志文件的路径 log4j.appender.A2.file = F:\log4j\debug.log #定义日志目的地3 控制台Appender log4j.appender.A3 = org.apache.log4j.DailyRollingFileAppender #定义A2的输出格式(灵活的输出格式) log4j.appender.A3.layout = org.apache.log4j.PatternLayout #定义A2具体的输出格式 log4j.appender.A3.layout.ConversionPattern = [%p](%l) -->%m[%r][%t]--%d%n #定义日志文件的路径(单天的以1.log命名,之前的文件以日期格式命名) log4j.appender.A3.file = F:\log4j\1.log #定义日志文件的命名规范 之前的 log4j.appender.A3.DatePattern = yyyy-MM-dd'.log' #定义日志文件的追加模式 (文件追加) log4j.appender.A3.Append = true
日志模板可以在官方下载
3.日志记录
记录日志需要使用Logger对象
package com.demo.log4j; import org.apache.log4j.Logger; import org.junit.Test; public class App { Logger logger = Logger.getLogger(this.getClass()); @Test public void run() { logger.info("info信息"); logger.debug("debug信息"); try { Object obj = null; obj.toString(); logger.warn("这是一个日志"); } catch (Exception e) { logger.error(e.getMessage()); logger.fatal(e.getMessage()); } } }