日志集成与日志系统

一、聊聊以前

        最近因为在搭建公司框架,日志是必须加入的一部分。目前因为还未将公司业务做成微服务,所以暂时是在框架基础上集成日志框架,满足框架项目的需要。当后面将公司业务进行微服务实战,当落地成功的时候,日志也将是一个微服务式的日志系统。

        最开始工作的时候,接触的日志就是项目中使用Log4j来实现,后面换成logback,但都是较为简单的打印DEBUG和ERROR 级别的日志,然后按天输出日志文件。后来通过AOP将方法的入参、接口调用、出参等内容打印,不止是DEBUG和ERROR级别的。这样在看日志文件时,通过规定的打印格式,容易定位到某个方法,方法的入参和出参都有详细的打印,有时候出现了问题,光通过分析日志文件就知道在哪里。不像以前,当出现问题时,大部分只打印一句错误提示,很难具体定位到问题,只是大概的知道。这对于开发和维护,是一个不小的进步。

        但这依然不够,这只是初步解决了问题定位的事情,对于通过日志来分析性能,基本是没有的。从数据挖掘方面,日志数据的采集、查询展示等都没有。所以一次较好的日志集成,是需要解决这些问题的。


二、日志的作用

        到此对日志的作用进行了大致的归纳,主要是用于问题定位、性能分析和数据的采集挖掘。

    2.1 问题定位

        线下开发时,可以通过debug模式一步步调式,跟踪解决问题,但当系统上线后,是不可能进行调试的。如果在方法中将方法的输入参数、参数值、输出参数、输出结果、方法中调用的接口、调用的接口参数与值都打印出来,尤其是ERROR级别的 日志,在try-catch代码块,将堆栈信息打印出来。当出现问题后,查看日志文件,就容易定位到问题了,不管是数据问题还是代码问题。

    2.2 性能分析

        不过是开发还是上线运行,我们要分析程序的性能问题时,通过日志来记录程序执行前后的时间,都是一个很好的办法。打印INFO级别的日志,记录程序前后执行的时间差,进而分析程序性能,是否需要进行优化。

    2.3 数据采集挖掘

        在现在这个信息化的时代,数据就是价值。有不少公司就会根据系统使用的情况,进行数据分析,然后卖数据分析的信息来挣取利润。虽然不少公司还不需要进行数据挖掘,但对于很大较大公司或者数据本身有很大利用价值的,数据挖掘很有必要。比如我们在网上搜索一些商品或在淘宝上买一些东西的时候,我们可能会看到有些网上会显示刚才所浏览商品的推荐信息,这就是很好的一个例子。这一般是通过埋点日志或为用户打标签的方式来实现,然后进行实时数据流的分析。

猜你喜欢

转载自blog.csdn.net/qinxian20120/article/details/80467921
今日推荐