java日志详解

日志用于记录程序运行时的信息,以便程序出现问题时,可以根据日志信息来查找问题

日志该记录什么?

1.操作

2.执行时间

3.数据

4.结果

但是程序发生问题的概率不高,大部分场景下是垃圾数据,但是当程序出现问题时,日志就是宝贵的数据,我们不知道他什么时候出问题,我们也不可能只记录异常的堆栈,有时候要知道前后的数据才能分析出问题,这种时候我们到底该怎么记录数据呢,这个时候我们就要考虑到日志的级别。

日志的级别:

日志的级别指的是日志输出的详细程度日志的级别越高,详细程度就越低

目前通用的日志级别的一种(log4j):

0.all:打开所有日志

1.trace:最详细的日志级别,一般不会使用(给程序员看的)

2.debug:用于调试程序,记录程序中的上下午数据(给程序员,运维看的)

3.info:用于记录程序的运行信息,比如程序启动,关闭(客户看的)

4.warn:用于记录警告信息,比如程序出现了潜在的错误,但是程序还是正常运行的

5.error:用于记录程序的错误信息,比如程序出现了错误,但是程序还是正常运行的

6.off:关闭日志

日志的输出方式:

输出到控制台,文件,数据库,日志分析系统(ELK)

控制台是有缓存大小的,windows10系统的控制台一般默认缓冲区的大小是50,意味着只会保留50行数据,超过50条的数据会被丢弃,只会保留最新的50条数据。一版来说日志并不会只有50行,这样就不能输出到控制台。所以我们就输出到文件。数据库,日志分析系统等等。

输出到控制台一般是给开发人员看的

日志的框架:

目前来说Java用的最多的四种日志框架log4j,log4j2,logbackJDK Logger,

前三个是一个作者,后一个是java内置的,目前市面上占比最多的是logback,以及log4j,一般是这两个,作者首先开发的是log4j,作者可能想迭代版本开发了log4j2,后面他发现一些问题就重写了这个框架,取了个名字叫logback,我们后面所要学的比如springboot,内置的日志框架就是logback

日志的框架兼容问题:

平时我们开发的时候,经常要引入别人的包

比如做一个项目我们需要同时引用以下A,B,C,D四个包

A包用的日志框架是log4j

B包用的日志框架是log4j2

C包用的日志框架是logback

D包用的日志框架是JDK Logger

现在我们的project同时引入了ABCD,怎么办?每一种框架都有自己独特的配置文件,为了记录一个日志文件,导入四个框架的配置文件,还不考虑这四个框架本身会有jar包冲突,这样肯定不行,这个时候我们就需要一个东西来忽略这四个配置,这个东西就是日志门面。

日志门面:

slf4j,commons-logging

常用的是这两个,他们有什么作用呢,如果不用日志门面,日志会直接依赖我们的项目,这就要我们为每一个包加一种配置,日志门面就是解决这个问题的,他屏蔽掉每一种日志的使用方式,提供统一的API,由日志门面调用每一种框架,我们的程序就负责调用日志门面。由门面来调用后面的框架,这样我们就不用关心包用的是什么日志框架,反正日志门面全给我们处理了。

作用:为了屏蔽日志框架的差异,统一日志的输出方式和调用API

日常开发中,我们用的最多的还是日志门面,但是日志框架还是要了解一种,我们就学log4j,因为后面两个是由log4j演变过来的

log4j导包

<dependencies>
   <dependency>
       <groupId>log4j</groupId>
       <artifactId>log4j</artifactId>
       <version>1.2.17<version>
   </dependency>
 </dependencies>

log4j以类为单位进行输出

public class Test {
    public static void main(String[] args) {
        // 1. 通过类名获取日志对象
        Logger logger = Logger.getLogger(Test.class);
        // 2. 日志记录输出
        logger.log(Level.DEBUG, "这是debug日志...");
        //缺少配置文件,会输出三个警告
    }
}

配置文件怎么配,请以我粉丝的身份私信我,然后自己看log4j的帮助文档(●'◡'●)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值