【Spring】日志的介绍和用途

日志概述

为什么要学习日志

日志对我们来说并不陌生,从 JavaSE 部分,我们就在使用 System.out.print 来打印日志了。通过打印日志来发现和定位问题,或者根据日志来分析程序的运行过程。在 Spring 的学习中,也经常根据控制台的日志分析和定位问题

随着项目的复杂度提升,我们对日志的打印也有了更高的需求,而不仅仅是定位排查问题

比如需要记录一些用户的操作记录(一些审计公司会要求),也可能需要使用之日来记录用户的一些喜好,把日志持久化,后续进行数据分析等。但是 System.out.print 不能很好的满足我们的需求,我们就需要使用一些专门日志框架(专业的事交给专业的人去做)

日志的用途

通过前面的学习,我们知道日志主要是为了发现问题,分析问题,定位问题的,但除此之外,日志还有很多用途

1 . 系统监控

监控现在几乎是一个成熟系统的标配,我们可以通过日志记录这个系统的运行状态,每一个方法的响应时间,响应状态等,对数据进行分析,设置不同的规则,超过阈值时进行抱紧

  • 比如统计日志中关键字的数量,并在关键字数量达到一定条件时报警,这也是日志的常见需求之一

2 . 数据采集

数据采集是一个比较大的范围,采集数据可以作用在很多方面,比如数据统计,推荐排序等

  • 数据统计:统计页面的浏览量(PV),访客量(UV),点击量等,根据这些数据进行数据分析,优化公司运行策略
  • 推荐排序:目前推荐排序应用在各个领域,我们经常接触的各行各业很多也都涉及推荐排序,比如购物,广告,新闻等领域。数据采集是推荐排序工作中必须做的一环,系统通过日志记录用户的浏览历史,停留时长等,算法人员通过分析这些数据,训练模型,给用户做推荐

下图中的数据源,其中一部分就来自于日志记录的数据image.png

3. 日志审计

随着互联网的发展,众多企业的关键业务越来越多的运行于网络之上。网络安全越来越受到大家的关注,系统安全也成为了项目中的一个重要环节,安全审计也是系统中非常重要的部分。

国家的政策法规、行业标准等都明确对日志审计提出了要求。通过系统日志分析,可以判断一些废话共计,非法调用,以及系统处理过程中的安全隐患

  • 比如,大家平时都在做运营系统,其中运营人员在通过界面处理一些数据的时候,如果没有清楚的日志操作记录,一条数据被删除或者修改,你是无法找到的是谁操作的,但是如果你做了相应的记录,该数据被谁删除或者修改就会一目了然
  • 还有一些内部的违规和信息泄露(比如客户信息被卖掉)现象出现后,如果未记录留存日志,为事后调查提供依据,则事后很难追查(一些公司查看客户的信息都会被记录日志,如果频繁查询也会报警)

日志使用

SpringBoot 项目在启动的时候默认就有日志输出,如下图所示:image.png

它打印的日志和 System.out.print 有什么不同呢?

  • 其打印的日志很单调,比 SpringBoot 打印的缺少了很多信息
  • SpringBoot 内置了日志框架 Slf4j,我们可以直接在程序中调用 Slf4j 来输出日志

打印日志

打印日志的步骤:

  • 在程序中得到日志对象
  • 使用日志对象输出要打印的内容

在程序中得到日志对象

在程序中获取日志对象需要使用日志工程 LoggerFactory,如下代码所示:

private static Logger logger = LoggerFactory.getLogger(LoggerController.class);
  • LoggerFactory.getLogger 需要传递一个参数,表示这个日志的名称。这样我们可以更清晰的知道是哪个类输出的日志
  • 当有问题时,可以更方便直观地定位到问题类

注意:Logger 对象是属于 org.slf4j 包下的,不要导入错包

使用日志对象打印日志

日志对象的打印方法有很多种,我们可以先使用 info() 方法来输出日志,如下代码所示:

@RestController  
public class LoggerController {  
    private static Logger logger = LoggerFactory.getLogger(LoggerController.class);  
  
    @RequestMapping("/logger")  
    public String logger() {  
        logger.info("----------------要输出日志的内容----------------");  
        return "打印日志";  
    }  
}

打印日志效果展示:image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值