当前位置: 首页 > 网络应用技术

如何优雅,有效地记录日志

时间:2023-03-07 10:15:55 网络应用技术

  操作日志在每个系统中都是常见的,并且该系统具有一组API,可以记录自己的日志以支持它。不同的系统日志不同。它可以分为两类:

  无论是系统日志还是业务日志,主要的角色都是记录操作的信息以查看需要的人。doday,让我们谈谈工作中的优雅记录日志。

  提示:如何记录业务日志的主要解释

  不同的业务需要记录不同的内容,而不同的业务则具有相同的内容。因此,需要分析共同点和差异的内容。请查看如何根据自己的工作来设计它。

  1.1日志需要记录哪些内容是常见的,并且大多数业务都可以使用。但也相同。但是,对于业务运营日志而言,最重要的是记录业务的内容。这是我们通常说的业务模板

  实际上可以自定义日志模板格式,如下所示:文件中的一行用作记录,该记录用分离主义符号进行分配。读取时,按下一条线以读取并将分隔器分开。每个位置都是固定的。

  优点:格式化格式很方便,这对于以下数据处理和表的显示非常方便。

  缺点:不要直观地表达内容。您需要在知道要表达什么之前处理处理。

  1.2静态实现方法1.2.1运河监视数据库操作日志是基于MySQL数据库增量日志分析,提供增量数据订阅和消耗的开源组件。修改了数据,然后根据更改数据记录操作日志。

  优点:没有入侵和商业逻辑。

  缺点:它只能记录操作数据库的操作,并且记录的字段只能是表中包含的字段。例如,如果我想记录操作员的IP地址,则无法。

  1.2.2 Java框架日志记录文件

  提示:常用的日志Java日志工具:

  此记录有几个问题:

  问题1:如何获取用户ID和IP地址?

  使用SLF4J中的MDC工具类,将操作员放置在日志中,然后在日志中打印。首先,用户的徽标是用户interceptor中的MDC端口:

  其次,将用户IP格式格式化为日志,并且可以使用%x {userId}获得MDC中的用户徽标。

  问题2:如何生成可读日志

  在日志文件中设置每个业务的相应日志模板。

  1.3动态日志实现方法为了解决上述问题,AOP通常用于记录操作日志和业务逻辑的解耦。LET查看:

  这是AOP实现的静态日志。因此,如何实现动态模板将涉及通过方式分析模板,以允许变量使用该位置占据,以实现通过注释记录操作日志的目的。分析模板有很多方法。Java用户使用的最多的框架是春季。在这里,我们还使用SPEL(春季表达语言,春季表达语言)来实现。

  需要实施的功能思想,是从E-商业网站购买商品的最常用用户,以创建采购订单为例:

  业务日志模板:用户[xxx]在[xxxx Time]上购买了[xxxx产品]。用户使用的终端是[xxxxx,ip地址]和操作类型:[xxxx]

  1.4模块引入主要分为三个主要功能:

  1.5代码实施模块在代码实现方面主要分为几个步骤:

  主要使用Spring的AOP和Spel获得动态日志记录。您可以直接使用Spel表达式。

  项目github地址:https://github.com/mxsm/mxsm- log4j

  参考资料: