日志系统(一):什么是日志?

日志系统(一):什么是日志?

1. 什么是日志

日志是指工作日志,现在的日志主要发表在网络,详细介绍一个过程和经历的记录。

在计算机中,日志是计算机系统、应用程序或设备在运行过程中,按一定格式记录的事件、状态、操作或错误信息的文本(或结构化数据)。它相当于系统的“日记”,用于追踪运行过程、排查问题、分析行为或满足合规性的要求。

2. 日志在项目开发中的作用

在项目开发中,一般都需要使用到日志。没有日志并不会影响项目的正常运行,但是没有日志的项目可以说是不完整的。日志在调试、错误或者异常定位、数据分析中是至关重要的。

2.1 问题排查与调试

当系统出现错误(如崩溃、功能异常)时,日志能记录错误发生的时间、位置、上下文(输入参数,调用栈),帮助开发者定位问题根源

2.2 系统监控与告警

日志可以实时反馈系统状态(CPU使用率、请求响应时间),通过监控工具分析日志,可以及时发现异常(频繁超时、流量突增)并触发告警

2.3 行为审计与合规

记录用户操作(登录、数据修改)或系统关键行为(文件删除、权限变更),满足行业合规要求(日志保存的时间)

2.4 性能分析与优化

通过日志中的时间戳和耗时记录(接口调用耗时、数据库查询时间),分析系统瓶颈,指导优化方向

3. 日志分类

面向问题排查的日志

面向提醒或告警的日志

面向调试和测试的日志

面向功能的日志(准确来说,是数据文件,不是日志)

面向人阅读的日志

面向机器解析的日志

4. 日志的实现方式

在编程中,日志的核心功能主要包括:

日志输出:写入文件、控制台、网络服务等滚动策略:当日志文件达到指定大小或时间(每天)时,自动创建新文件(避免单文件过大)异步写入:通过缓冲区和后台线程异步写入日志,避免主线程阻塞格式化:自定义日志格式(包含时间、级别、模块),便于后续分析

5. 日志消息的级别

5.1 FATAL 致命错误

发生致命错误,代表服务器整个或者核心功能,已经无法工作。处理原则如下:

在服务器启动时就进行检查,如果存在致命错误直接抛出异常,让服务器不要启动起来(启动了也无法正常工作,不如不启动)

在服务器启动之后,发生了致命的错误,则记录error级别的错误日志,最好是同时触发相关的修复和警告工作(比如给开发和维护人员发送警告邮件)

5.2 ERROR 错误

发送error级别的错误,代表功能或者重要逻辑遇到问题,无法正常工作

5.3 WARN 警告

warn是警告的意思,有两方面作用:

从程序角度,在某些功能或逻辑不正常时,发生了一些小故障但是没有大的影响

从业务角度,遇到了一些特殊操作或者特殊数据,例如重要数据或配置被修改,或者某些操作需要引起重视

5.4 INFO 信息

info 用于记录一些有用的、关键的信息,一般这些信息出现不频繁,只是在初始化的地方或者重要操作的地方才记录

5.5 DEBUG 调试

debug 用于记录一些调试信息,为了方便查看程序的执行过程和相关数据,了解程序的动态

5.6 TRACE 跟踪

trace 用于记录一些更详细的调试信息,这些信息无需每次调试时都打印出来,只在需要更详细的调试信息时才开启,例如在排查问题、检测时跟踪程序的执行

5.7 TRACE 和 DEBUG的区别

debug 级别的日志相对规范,主要记录程序执行过程中的关键信息,可在生产环境中留存,用于排查问题,其输出量要控制在较小范围

trace 级别的日志,仅用于开发或者测试时调试程序,用来查看程序执行的详细信息。这类日志通常仅在开发环境启用,在测试环境和生产环境中一般默认关闭,仅在需要排查问题时才开启。对于 trace 日志的输出量没有限制,因此其通常会产生较多的日志内容

总结

需要明确的是,日志的记录与否与日志级别,应根据功能的重要性来判定,而非取决于程序是否出现异常。这意味着,即便程序报错,也并非一定要记录为 error 级别的日志——对于一些不太重要的模块,将报错信息记录为 warn 或 debug 级别即可

此外,当系统发生致命错误时,不能仅仅记录一条 error 日志就完事,还必须立即采取相应的应对措施

相关推荐

删档测试后一般多久正式开服?(删档测试会删除账号吗)
6秒VS15秒,广告视频哪种长度更受消费者青睐?
365游戏中心官网地址

6秒VS15秒,广告视频哪种长度更受消费者青睐?

📅 07-04 👁️ 1417
汗马之劳
365游戏中心官网地址

汗马之劳

📅 08-02 👁️ 4521
轮胎最多能用几年?能补几次?磨损标志怎么看?一口气讲清楚
冰岛队在世界杯上的英雄征程与历史回顾解析2025-06-15 06:49:11浏览次数:返回列表
港股IPO上市周期:赴港上市,需要花多长时间? 港股上市进程一般分为递表(递交上市申请)、备案、聆讯、路演、招股、挂牌上市等阶段。递表至通过聆讯是花费时间最长的阶段,期...
包 java.applet
beat365手机中文官方网站

包 java.applet

📅 07-05 👁️ 4571
快乐抢红包
365bet体育投注地

快乐抢红包

📅 07-27 👁️ 433
​为什么说做人别太甄子丹?他的人品太差吗?看看圈内人的评价!