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

本文涉及的产品
日志服务 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日志并进行多维度分析。
相关文章
|
17天前
|
存储 监控 数据库
Django 后端架构开发:高效日志规范与实践
Django 后端架构开发:高效日志规范与实践
34 1
|
22天前
|
运维 安全 Linux
【揭秘】如何轻松掌控Linux系统命脉?——一场探索日志文件奥秘的旅程,带你洞悉系统背后的故事!
【8月更文挑战第21天】日志文件对Linux系统至关重要,记录着包括应用行为、组件状态和安全事件在内的系统活动,如同系统的“黑匣子”。掌握日志查看技巧是系统管理的基础技能,有助于快速诊断问题。常用命令包括`cat`、`tail`和`grep`等,可用于查看如`/var/log/messages`和`/var/log/auth.log`等系统日志文件,以及特定应用的日志。`journalctl`则用于查看systemd服务日志。此外,`logrotate`工具可管理日志文件的滚动和归档,确保系统高效运行。
35 4
|
19天前
|
存储 数据采集 数据处理
【Flume拓扑揭秘】掌握Flume的四大常用结构,构建强大的日志收集系统!
【8月更文挑战第24天】Apache Flume是一个强大的工具,专为大规模日志数据的收集、聚合及传输设计。其核心架构包括源(Source)、通道(Channel)与接收器(Sink)。Flume支持多样化的拓扑结构以适应不同需求,包括单层、扇入(Fan-in)、扇出(Fan-out)及复杂多层拓扑。单层拓扑简单直观,适用于单一数据流场景;扇入结构集中处理多源头数据;扇出结构则实现数据多目的地分发;复杂多层拓扑提供高度灵活性,适合多层次数据处理。通过灵活配置,Flume能够高效构建各种规模的数据收集系统。
26 0
|
20天前
|
存储 消息中间件 人工智能
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
早期 MiniMax 基于 Grafana Loki 构建了日志系统,在资源消耗、写入性能及系统稳定性上都面临巨大的挑战。为此 MiniMax 开始寻找全新的日志系统方案,并基于阿里云数据库 SelectDB 版内核 Apache Doris 升级了日志系统,新系统已接入 MiniMax 内部所有业务线日志数据,数据规模为 PB 级, 整体可用性达到 99.9% 以上,10 亿级日志数据的检索速度可实现秒级响应。
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
|
18天前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
7天前
|
JSON 缓存 fastjson
一行日志引发的系统异常
本文记录了一行日志引发的系统异常以及作者解决问题的思路。
|
16天前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
|
16天前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之配置Logback以在控制台输出日志的问题如何解决
Java应用结构规范问题之配置Logback以在控制台输出日志的问题如何解决
|
16天前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之AllLoggers接口获取异常日志的Logger实例的问题如何解决
Java应用结构规范问题之AllLoggers接口获取异常日志的Logger实例的问题如何解决
|
21天前
|
存储 监控 数据可视化
在Linux中,如何查看系统日志?
在Linux中,如何查看系统日志?