JUL(jdk自带)
适用于小型的java项目,不需要第三方类库。
1.jul的架构如下
- Loggers:被称为记录器,应用程序通过获取Logger对象,调用其API来来发布日志信息。Logger通常时应用程序访问日志系统的入口程序。
- Appenders:也被称为Handlers,每个Logger都会关联一组Handlers,Logger会将日志交给关联Handlers处理,由Handlers负责将日志做记录。Handlers在此是一个抽象,其具体的实现决定了日志记录的位置可以是控制台、文件、网络上的其他日志服务或操作系统日志等。
- Layouts:也被称为Formatters,它负责对日志事件中的数据进行转换和格式化。Layouts决定了数据在一条日志记录中的最终形式。
- Level:每条日志消息都有一个关联的日志级别。该级别粗略指导了日志消息的重要性和紧迫,我可以将Level和Loggers,Appenders做关联以便于我们过滤消息。
- Filters :过滤器,根据需要定制哪些信息会被记录,哪些信息会被放过
2. 简单使用入门
@Test
public void test1(){
//1.获取日志记录器对象
Logger logger=Logger.getLogger("com.hncj.log.jul.JULStudy");
//2.日志输出
logger.info("hello,第一次使用日志");
//通用方法记录日志
logger.log(Level.INFO,"hello,第二次日志记录");
//通过占位符方式输出变量
String username="wangshanhe";
int age=18;
logger.log(Level.INFO,"我叫:{0},我今年{1}岁了",new Object[]{
username,age});
}
输出结果
3.日志的级别(level枚举类)
- SEVERE:当我们程序出现很严重的问题,造成了程序的终止,我们可以拿severe进行记录
- WARNING:记录程序出现的一些问题,这些问题不会造成程序的终止,我们可以使用warning进行记录
- INFO:记录一些程序信息,如发送邮件、连接数据库。
- CONFIG:记录配置信息,加载配置问价,读取配置文件的信息可以拿config进行记录
- FINE、FINER、FINEST:这仨都是debug日志记录消息,记录程序运行的状态、程序执行流程,参数传递信息
- ALL和OFF都是日志开关
4.默认的日志级别是info
//日志级别
@Test
public void test2(){
//1.获取日志记录对象
Logger logger=Logger.getLogger("日志级别测试类");
//2.日志记录输出
logger.severe("server级别日志输出");
logger.warning("warning级别日志输出");
logger.info("info级别日志输出");//jul默认的日志级别是info 比info高的输出,比info低的默认过滤
logger.config("config级别日志输出");
logger.fine("fine级别日志输出");
logger.finer("finer级别日志输出");
logge