logging

日志

日志的概念

处理历史数据、诊断问题理解系统的重要作用。

日志的作用

  • 调试:在开发过程中进行代码调试。

  • 错误定位:项目在运行一段时间后,网络原因,数据问题,内存问题出现异常。这时日志可以帮助我们快速定位错误位置。

  • 数据分析

接触过的日志

最简单的日志输出,我们每天都在用

System.out.println("日志输出");

错误的日志:

System.err.println("错误...");

主流的日志框架

  • 日志实现(具体干活的):JUL(java.util.logging)、logback(最火)、log4j、log4j2

  • 日志门面(指定规则的):JCL、slf4j。

ECMAScript:简称ES,规范的指定者

JavaScript:简称JS,规范的实现者

JUL

JUL全程java.util.logging是Java原生的日志框架,使用时候不需要引入任何第三方依赖,相对于其他日志框架来说使用方便,在小型的应用中。

在JUL中有以下组件:

  • Loggers:记录器

  • Appenders:决定了日志记录的位置可以是控制台、文件、网络上的url地址

  • Layouts:对日志信息进行格式化

  • Level:日志的等级

  • Filters:过滤器,我们可以根据需要定制哪些信息需要记录,哪些不需要记录

日志的级别

java.util.logging.Level中定义了日志的级别:

  1. SEVERE(最高值)

  2. WARNING

  3. INFO(默认级别)

  4. CONFIG

  5. FINE

  6. FINER

  7. FINEST(最低值)

还有两个特殊的级别:

  • OFF:可用来关闭日志记录

  • ALL:启用所有消息的日志记录

LOG4J

Log4j是apache下的一款开源的日志框架。这是一款比较经典日志框架,目前依然有一些老旧的项目在使用Log4j,Log4j2并不是Log4j的升级版,对Log4j的改动特别大。

log4j定义的日志级别:从高到低

  • fatal:严重的错误,会影响程序的执行,会导致程序的退出

  • error:虽然发生错误事件,但是不影响系统的继续运行

  • warn:会出现潜在的可能影响程序运行的错误

  • info:一般会监控程序运行的全过程

  • debug:用来监控调试信息

  • trace:用来追踪全过程,方法,参数,变量...

和JUL一样,有两个特殊的级别:OFF,用来关闭日志记录。ALL,记录所有消息日志。

一般情况下,我们只使用4个级别,error>warn>info>debug。

日志门面

日志门面:规范。

日志门面相当于菜单,日志实现就相当于厨师。

常见的日志门面:JCL,SLF4J

常见的日志实现:JUL,LOG4J,logback,LOG4J2

SLF4J

目前是市面上最流行的日志门面。现在的项目中,基本上都是使用的SLF4J作为日志系统。

SLF4J主要提供了两大功能:

  1. 日志框架的绑定

  2. 日志框架的桥接

logback

如果要使用外部配置,需要在classpath下引入配置文件。

  1. 默认会先找logback-test.xml

  2. 如果没有logback-test,会去找logback.groovy

  3. 如果没有logback.groovy,会去找logback.xml

log4j2

参考logback的一些优秀的设计。

带来了一些重大的提升:

  • 异常处理,在logback中,Appender的异常不会被应用感知的,在Logj2中,提供了一些异常处理机制

  • 性能提升

  • 自动重载配置

如果要使用外部配置:

  • xml

  • properties

  • yml

  • json

默认会加载classpath下的log4j2.xml

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值