layout: post
#标题配置
title: 单元测试和日志技术
#时间配置
date: 2021-08-01 11:00:00 +0800
#目录配置
categories: Java
#标签配置
tag: 学习笔记
- content
{:toc}
单元测试
Junit使用的基本流程
-
将Junit的jar包导入到工程中
-
编写测试方法必须是公共的无参数无返回值的非静态方法
-
在测试方法上使用@Test注解标注该方法是一个测试方法
-
选中测试方法右键通过Junit运行该方法
常用注解介绍
@Test //表示测试该方法
@Before //在测试的方法前运行
@After //在测试的方法后运行
日志技术
日志与输出语句的区别
输出语句 日志技术
取消日志 需要修改代码,灵活性比较差 不需要修改代码,灵活性比较好
输出位置 只能是控制台 可以将日志信息写入到文件或者数据库中
多线程 和业务代码处于一个线程中 多线程方式记录日志,不影响业务代码的性能
Log4j
Log4j是Apache的一个开源项目
通过Log4j,我们可以控制日志信息输送的目的地是控制台、文件等位置
我们也可以控制每一条日志的输出格式
通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程
这些可以通过一个配置文件来灵活的进行配置,而不需要修改应用的代码
开发流程
- 导入jar包
- 编写配置文件(文件名必须为log4j.properties),放到src文件下
- 在代码中获取日志的对象
- 按照日志级别设置日志信息
Log4j组成
1.Loggers(记录器) ---------日志的级别
2.Appeners(输出源)-------日志要输出的地方
3.Layouts(布局)-------------日志输出的格式
Loggers
1.Loggers组件在此系统中常见的五个级别:DEBUG、INFO、WARN、ERROR和FATAL
2.DEBUG<INFO<WARN<ERROR<FATAL
3.Log4j有一个规则:只输出级别不低于设定级别的日志信息
Appeners
把日志输出到不同的地方,比如控制台(Console)、文件(Files)等
org.apache.log4j.ConsoleAppender
org.apache.log4j.FileAppender
Layouts
可以根据自己的喜好规定日志输出的格式
常用的布局管理器:
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)
配置根Logger
格式:log4j.rootLogger=日志级别,appenderName1,appenderName2,…
日志级别:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别
appenderName1:就是指定日志信息要输出到哪里。可以同时指定多个输出目的地,用逗号隔开
例如:log4j.rootLogger=INFO,ca,ca
ConsoleAppender常用的选项
log4j.appender.my.ImmediateFlush = true -----表示所有消息都会被立即输出,设为false则不 输出,默认值是true
log4j.appender.my.Target=System.out ------默认值是System.out,也可以是System.err
FileAppender常用的选项
log4j.appender.fileAppender.ImmediateFlush = true —表示所有消息都会被立即输出,设为 false则不输出,默认值为true
log4j.appender.fileAppender.Append=true ----true表示将消息添加到指定文件中,原来的 消息不覆盖,false则将消息覆盖指定的文件 内容,默认值为true
log4j.appender.fileAppender.File=D:/log4j-log.log -----指定消息输出到log4j-log.log中
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P6oyByIC-1660185878520)(E:\桌面\课程\JAVA\笔记\单元测试和日志技术\PatternLayout常用的选项.png)]
ile=D:/log4j-log.log -----指定消息输出到log4j-log.log中
[外链图片转存中…(img-P6oyByIC-1660185878520)]