五.断言
1.断言(Assertion)是一种程序调试方式
--使用assert关键字
--断言条件预期为true
--如果断言失败,抛出AssertionError
--可选断言消息,断言失败时可以抛出。
断言的特点:
--不能用于可恢复的程序错误,可恢复的程序应该抛出异常
--只应该用于开发和测试阶段。
启用断言:
jvm默然关闭断言指令
给类启用断言 -ea:com.feiyangedu.sample.Main
可以指定特定的包启用断言-ea:com.feiyangedu...
六.日志
1.什么是日志
--为了取代System.out.println()
--可以设置输出样式
--可以设置输出级别,禁止某些级别输出
--可以被重定向到文件
--可以按包名控制日志级别
2.jdk logging定义了7个日志级别
--SEVERE
--WARNING
--INFO(默认)
--CONFIG
--FINE
--FINER
--FINEST
指定哪个级别就可以用该级别和以上级别。
3.jdk logging的局限:
--jvm启动时读取配置文件并完成初始化
--jvm启动后无法修改配置
--需要在JVN启动时传递参数
-Djava.util.logging.config.file = config-file-name
六.commons logging
commons logging
--可以挂接不同的日志系统
--可以通过配置文件指定挂接的日志系统
--自动搜索并使用Log4j
--使用JDK Logging(JDK >=1.4)
基本用法:
public class main{
public static void main(String[] args){
Log log = LogFactory.getLog(Main.class);
log.info("ddd");
log.warn("end.");
}
}
6个日志级别:
FATAL
ERROR
WARNING
INFO
DEBUG
TRACE
在静态方法中引用Log:
public class Main{
static final Log log = LogFactory.getLog(Main.class);
}
在实例方法中
public class Person{
final Log log = LogFactory.getLog(getClass());
}
在父类中实例化Log
public abstract class Base{
protected final Log log = LogFactory.getLog(getClass());
}
七.log4j
通过Commons Logging实现日志,不需要修改diamante即可使用Log4j
使用Log4j只需要把log4j2.xml和相关jar放入classpath
如果要更换Log4j,只需要移除log4j2.xml和相关jar
只有扩展Log4j,才需要引用Log4j的接口。