系统日志规范问题之业务执行日志的定义如何解决

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 系统日志规范问题之业务执行日志的定义如何解决

问题一:业务执行日志是什么?需要关注什么?


业务执行日志是什么?需要关注什么?


参考回答:

"业务执行日志就是系统执行过程中输出的日志,一般没有特定格式,是开发人员用于跟踪代码执行逻辑而打印的日志,个人看来在摘要日志、详细日志、错误日志齐全的情况下,需要打印系统执行日志的地方比较少。如果一定要打印业务执行日志,需要关注以下几个点:

这个日志是否一定要打印?如果不打印是否会影响后续问题排查,如果打印这个日志后续输出频率是否会太高,造成线上日志打印过多。

日志格式是否辨识度高?如果后续对该条日志进行监控或清洗,是否存在无法与其他日志区分或者每次打印的日志格式都不一致的问题?

输出当前执行的关键步骤和描述,明确的表述出打印该条日志的作用,方便后续维护人员阅读。

日志中需包含明确的打印意义,当前执行步骤的关键参数。"


关于本问题的更多问答可点击原文查看:

https://developer.aliyun.com/ask/658484



问题二:为什么打印日志的代码不允许失败,阻断流程?


为什么打印日志的代码不允许失败,阻断流程?


参考回答:

"要确保不会因为日志打印语句抛出异常造成业务流程中断,如下图所示,shop为null的会导致抛出NPE。

public void doSth(){    
log.info(""do sth and print log: {}"", shop.getId());    
// 业务逻辑    
...
}"


关于本问题的更多问答可点击原文查看:

https://developer.aliyun.com/ask/658485



问题三:为什么禁止使用System.out.println()输出日志?


为什么禁止使用System.out.println()输出日志?


参考回答:

"禁止使用System.out.println()输出日志有几个原因。

首先,System.out.println()是一个同步方法,在高并发情况下会严重影响性能。

其次,它不能像日志框架那样实现日志按等级输出,例如debug、info、error等级别的控制。

最后,System.out.println()打印的日志直接输出到终端,而不是日志文件,这使得日志的收集和管理变得困难。"


关于本问题的更多问答可点击原文查看:

https://developer.aliyun.com/ask/658486



问题四:System.out.println()方法为什么在高并发情况下会影响性能?


System.out.println()方法为什么在高并发情况下会影响性能?


参考回答:

因为它是一个同步方法。在其内部实现中,使用了synchronized关键字,这意味着在多线程环境下,每次只有一个线程能够执行该方法,其他线程必须等待,从而导致了性能瓶颈。


关于本问题的更多问答可点击原文查看:

https://developer.aliyun.com/ask/658487


问题五:使用System.out.println()打印日志有哪些局限性?


使用System.out.println()打印日志有哪些局限性?


参考回答:

"使用System.out.println()打印日志的局限性主要体现在三个方面:

一是它不支持日志级别的控制,如debug、info、error等;

二是它直接将日志输出到控制台,不便于日志的持久化存储和后续分析;

三是在高并发环境下,由于其同步特性,会严重影响系统性能。"


关于本问题的更多问答可点击原文查看:

https://developer.aliyun.com/ask/658488

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
5月前
|
存储 监控 数据库
Django 后端架构开发:高效日志规范与实践
Django 后端架构开发:高效日志规范与实践
100 1
|
6天前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
35 8
|
5月前
|
存储 数据采集 数据处理
【Flume拓扑揭秘】掌握Flume的四大常用结构,构建强大的日志收集系统!
【8月更文挑战第24天】Apache Flume是一个强大的工具,专为大规模日志数据的收集、聚合及传输设计。其核心架构包括源(Source)、通道(Channel)与接收器(Sink)。Flume支持多样化的拓扑结构以适应不同需求,包括单层、扇入(Fan-in)、扇出(Fan-out)及复杂多层拓扑。单层拓扑简单直观,适用于单一数据流场景;扇入结构集中处理多源头数据;扇出结构则实现数据多目的地分发;复杂多层拓扑提供高度灵活性,适合多层次数据处理。通过灵活配置,Flume能够高效构建各种规模的数据收集系统。
115 0
|
1月前
|
存储 监控 安全
什么是事件日志管理系统?事件日志管理系统有哪些用处?
事件日志管理系统是IT安全的重要工具,用于集中收集、分析和解释来自组织IT基础设施各组件的事件日志,如防火墙、路由器、交换机等,帮助提升网络安全、实现主动威胁检测和促进合规性。系统支持多种日志类型,包括Windows事件日志、Syslog日志和应用程序日志,通过实时监测、告警及可视化分析,为企业提供强大的安全保障。然而,实施过程中也面临数据量大、日志管理和分析复杂等挑战。EventLog Analyzer作为一款高效工具,不仅提供实时监测与告警、可视化分析和报告功能,还支持多种合规性报告,帮助企业克服挑战,提升网络安全水平。
|
2月前
|
存储 Linux Docker
centos系统清理docker日志文件
通过以上方法,可以有效清理和管理CentOS系统中的Docker日志文件,防止日志文件占用过多磁盘空间。选择合适的方法取决于具体的应用场景和需求,可以结合手动清理、logrotate和调整日志驱动等多种方式,确保系统的高效运行。
221 2
|
3月前
|
XML JSON 监控
告别简陋:Java日志系统的最佳实践
【10月更文挑战第19天】 在Java开发中,`System.out.println()` 是最基本的输出方法,但它在实际项目中往往被认为是不专业和不足够的。本文将探讨为什么在现代Java应用中应该避免使用 `System.out.println()`,并介绍几种更先进的日志解决方案。
85 1
|
3月前
|
监控 网络协议 安全
Linux系统日志管理
Linux系统日志管理
73 3
|
3月前
|
监控 应用服务中间件 网络安全
#637481#基于django和neo4j的日志分析系统
#637481#基于django和neo4j的日志分析系统
50 4
|
5月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
152 1
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
4月前
|
监控 前端开发 开发者
前端代码规范 - 日志打印规范
前端代码规范 - 日志打印规范