Java学习Day18------枚举、JUnit、日志

枚举、JUnit、日志

枚举

(1)概述
  用来表示一些固定的数据值(例如: 春夏秋冬、星期、月份…),每一个枚举项,都是该枚举类的对象。
(2)特点
  a) 所有枚举都是 Enum 的子类
  b) 我们可以通过 “枚举类名.枚举项名称” 去访问指定的枚举项
  c) 每一个枚举项 其实就是该枚举的一个对象
  d) 枚举也是一个类, 也可以去定义成员变量
  e) 枚举类的第一行上必须是枚举项, 最后一个枚举项后的分号是可以省略的, 但是如果枚举类有其他的东西,这个分号就不能省略,这个分号就不能省略。建议不要省略。
  f) 枚举类可以有构造器, 但必须是 private 的, 它默认的也是private 的。枚举项的用法比较特殊:枚举("");
  g) 枚举类也可以有抽象方法, 但是枚举项必须重写该方法
(3)本质
在这里插入图片描述
(4)定义格式

public enum 枚举类名称{
    枚举项1,枚举项2,枚举项3
}

(5)案例

public enum Season {
    SPRING,SUMMER,AUTUMN,WINTER
}

public class Test {
    public static void main(String[] args) {
        Season season = Season.SPRING;
        switch (season){
            case SPRING:
                System.out.println("春季");
                break;
            case SUMMER:
                System.out.println("夏季");
                break;
            case AUTUMN:
                System.out.println("秋季");
                break;
            case WINTER:
                System.out.println("冬季");
                break;
            default:
                System.out.println("憨批,季节都不知道");
                break;
        }
    }
}

(6)常用方法

方法名备注
String name()获取枚举项的名称
int ordinal()返回枚举项在枚举类中的索引值
int compareTo(E o)比较两个枚举项, 返回的是索引值的差值
String toString()返回枚举常量的名称
static valueOf(Class type,String name)获取指定枚举类中的指定名称的枚举值
values()获得所有的枚举项

单元测试(JUnit)

(1)实现步骤
  a) 导入外部 jar 包
  b) 编写方法, 无参数无返回值非静态的public修饰的方法
  c) 添加注解 @Test
  d) 断言预测(Assert类)
(2)重要注解
  a) @Before 在…之前, 在 @Test 注解之前运行, 用于初始化数据
  b) @Test 真正运行的方法
  c) @After 在…之后, 在 @Test 注解之后运行, 用于释放资源
(3)案例

//定义的计算器类
public class Calcator {

    //定义加法操作
    public int add(int x,int y){
        return x + y;
    }

    //定义减法操作
    public int subst(int x,int y){
        return x + y;
    }
}

//定义测试类,用于测试 Calcator
public class TestCalcator {
    Calcator calc = null;

    @Before
    public void start(){
        System.out.println("start...Before..初始化");
        calc = new Calcator();
    }

    //测试加法的操作
    @Test
    public void testAdd(){
        //int xixi = 3/0;
        System.out.println("testAdd....Test...");
        int result = calc.add(10, 20);
        //预言,断言
        Assert.assertEquals(30,result);
    }

    //测试减法的操作
    @Test
    public void testSubst(){
        System.out.println("testSubst....Test...");
        int result = calc.subst(66, 88);
        //断言,预言,预判
        Assert.assertEquals(-22,result);
    }

    @After
    public void end(){
        System.out.println("end...After...释放资源");
    }
}

日志

(1)操作步骤
  a) 需要导入三个 jar 包:
    log4j-1.2.17.jar
    slf4j-api-1.7.30.jar
    slf4j-log4j12-1.7.26.jar
  b) 需要导入 配置文件。
    aa) 配置文件名称, 必须叫做 log4j.properties
    bb) 配置文件位置, 必须放在 src 下面
    c) 在使用类的地方, 获取到对象
    //说明一下: 下面的 Logger 和 LoggerFactory 都是来自于 slf4j 包里面的
    public static final Logger LOGGER = LoggerFactory.getLogger(当前类名称.class);
  d) 在需要使用log4j的位置,调用方法
    LOGGER.debug(“要输出的字符串”);
    LOGGER.info(“要输出的字符串”);
    LOGGER.warn(“要输出的字符串”);
    LOGGER.error(“要输出的字符串”);
(2)配置文件说明

### 配置根 Logger
# warn 设置最低显示级别。显示级别的大小顺序:DEBUG < INFO < WARN < ERROR < FATAL
# myself 自定义的设置方案
# myFile 自定义的设置方案
log4j.rootLogger=warn,myself,myFile

################

### 设置自定义的日志信息:myself ###
# org.apache.log4j.ConsoleAppender 当前的日志信息,会展示在控制台当中
# log4j.appender.myself.ImmediateFlush = true 如果为true,只要有日志立即写入,日志少,使用true
# log4j.appender.myself.Target=System.out 作为打印输出使用,如果是 System.error 出现红色日志
# log4j.appender.myself.layout=org.apache.log4j.PatternLayout 设置灵活布局
# log4j.appender.myself.layout=org.apache.log4j.SimpleLayout 可以设置简单布局
# log4j.appender.myself.layout.ConversionPattern=%d %t %5p %c{1}:%L - %m%n  灵活定义输出格式

log4j.appender.myself=org.apache.log4j.ConsoleAppender
log4j.appender.myself.ImmediateFlush = true
log4j.appender.myself.Target=System.out
log4j.appender.myself.layout=org.apache.log4j.PatternLayout
log4j.appender.myself.layout.ConversionPattern=%d %t %5p %c{1}:%L - %m%n

################

### 设置自定义的日志信息:myFile
# log4j.appender.myFile=org.apache.log4j.FileAppender  当前的日志输出在文件当中。
# log4j.appender.myFile.ImmediateFlush = true 如果为true,只要有日志立即写入,日志少,使用true
# log4j.appender.myFile.File=C:/log4j-log.log 设置日志出现的文件路径
# log4j.appender.myFile.layout=org.apache.log4j.PatternLayout 设置灵活布局
# log4j.appender.myFile.layout.ConversionPattern=%d %5p %c{1}:%L - %m%n 灵活定义输出格式

log4j.appender.myFile=org.apache.log4j.FileAppender
log4j.appender.myFile.ImmediateFlush = true
log4j.appender.myFile.Append=true
log4j.appender.myFile.Threshold=info
log4j.appender.myFile.File=F:/log4j-log.log
log4j.appender.myFile.layout=org.apache.log4j.PatternLayout
log4j.appender.myFile.layout.ConversionPattern=%d %5p %c{1}:%L - %m%n

(3)案例

// 配置文件的名称必须是 log4j.properties 配置文件所在的位置必须是 src下面
### 配置根 Logger
# warn 设置最低显示级别。显示级别的大小顺序:DEBUG < INFO < WARN < ERROR < FATAL
# myself 自定义的设置方案
# myFile 自定义的设置方案
log4j.rootLogger=debug,myself,myFile

################

### 设置自定义的日志信息:myself ###
# org.apache.log4j.ConsoleAppender 当前的日志信息,会展示在控制台当中
# log4j.appender.myself.ImmediateFlush = true 如果为true,只要有日志立即写入,日志少,使用true
# log4j.appender.myself.Target=System.out 作为打印输出使用,如果是 System.error 出现红色日志
# log4j.appender.myself.layout=org.apache.log4j.PatternLayout 设置灵活布局
# log4j.appender.myself.layout=org.apache.log4j.SimpleLayout 可以设置简单布局
# log4j.appender.myself.layout.ConversionPattern=%d %t %5p %c{1}:%L - %m%n  灵活定义输出格式

log4j.appender.myself=org.apache.log4j.ConsoleAppender
log4j.appender.myself.ImmediateFlush = true
log4j.appender.myself.Target=System.out
log4j.appender.myself.layout=org.apache.log4j.PatternLayout
log4j.appender.myself.layout.ConversionPattern=%d %t %5p %c{1}:%L - %m%n

################

### 设置自定义的日志信息:myFile
# log4j.appender.myFile=org.apache.log4j.FileAppender  当前的日志输出在文件当中。
# log4j.appender.myFile.ImmediateFlush = true 如果为true,只要有日志立即写入,日志少,使用true
# log4j.appender.myFile.File=C:/log4j-log.log 设置日志出现的文件路径
# log4j.appender.myFile.layout=org.apache.log4j.PatternLayout 设置灵活布局
# log4j.appender.myFile.layout.ConversionPattern=%d %5p %c{1}:%L - %m%n 灵活定义输出格式

log4j.appender.myFile=org.apache.log4j.FileAppender
log4j.appender.myFile.ImmediateFlush = true
log4j.appender.myFile.Append=true
log4j.appender.myFile.Threshold=info
log4j.appender.myFile.File=C:/log4j-log.log
log4j.appender.myFile.layout=org.apache.log4j.PatternLayout
log4j.appender.myFile.layout.ConversionPattern=%d %5p %c{1}:%L - %m%n
//1. 准备工作
//      A. jar包
//      B. 配置文件 src/log4j.properties
//      C. 成员位置,准备对象(酸辣粉slf)
//2. 调用方法
//      调用对应级别的方法
//      DEBUG<INFO<WARN<ERROR
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Demo {

    //准备对象, 酸辣粉
    public static final Logger LOGGER = LoggerFactory.getLogger(Demo.class);

    public static void main(String[] args) {
        //调用方法
        LOGGER.debug("这是debug级别的日志,debug调试级别");
        LOGGER.info("这是info级别的日志,info信息级别");
        LOGGER.warn("这是warn级别的日志,warn警告级别");
        LOGGER.error("这是error级别的日志,error错误级别");
    }
}

(4)日志级别信息
  a) 七个级别( 最低级别是 ALL,最高级别是 OFF)
    aa) ALL
    bb) DEBUG
    cc) INFO
    dd) WARN
    ee) ERROR
    ff) FATAL
    gg) OFF
  b) 拓展
    aa) 一般情况下,在开发阶段的时候, 我们会采用 ALL 级别, 所有的日志信息, 都可以显示出来。 以便于查看日志信息
    bb) 在上线之后,需要关闭所有的日志级别, 不能在控制台当中,或者文件当中,或者数据库当中,进行日志的展示了。需要设置级别为 OFF

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值