一、概述

日志文件是用于记录系统操作事件的文件集合,可分为事件日志消息日志具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用
在计算机中,日志文件是记录在操作系统或其他软件运行中发生的事件或在通信软件的不同用户之间的消息的文件。记录是保持日志的行为。在最简单的情况下,消息被写入单个日志文件。

二、日志的作用

  • 调试在Java项目调试时,查看栈信息可以方便地知道当前程序的运行状态,输出的日志便于记录程序在之前的运行结果。如果你大量使用System.out或者System.err,这是一种最方便最有效的方法,但显得不够专业。
  • 错误定位不要以为项目能正确跑起来就可以高枕无忧,项目在运行一段时候后,可能由于数据问题,网络问题,内存问题等出现异常。这时日志可以帮助开发或者运维人员快速定位错误位置,提出解决方案。
  • 数据分析大数据的兴起,使得大量的日志分析成为可能,ELK也让日志分析门槛降低了很多。日志中蕴含了大量的用户数据,包括点击行为,兴趣偏好等,用户画像对于公司下一步的战略方向有一定指引作用。

    三、接触过的日志image.png

    此类代码在程序的执行过程中没有什么实质的作用,但是却能打印一些中间变量,辅助我们调试和错误的排查。
    日志系统我们也见过:
    在tomcat中 image-20211021105443307.a3ff32dd.png
    当我们的程序无法启动或者运行过程中产生问题,会有所记录,比如我的catalina.log中查看,发现确实有错误信息,这能帮我们迅速定位: image-20211021105553886.9a0eb0bf.png
    而我们的System.err只能做到控制台打印日志,所以我们需要更强大日志框架来处理:

    四、主流日志框架

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

  • 日志门面(指定规则的):JCL(Jakarta Commons Logging)、slf4j( Simple Logging Facade for Java)
  • 市场主流:log4j2搭配slf4j