整个系统大部分时间都是运维人员来维护,日志可以帮助运维人员来了解系统运行状态,运维人员发现日志有异常信息也可以及时通知开发来排查
运营人员
电商的转化率、视频网站的完播率、普通PV数据等都可以通过日志进行数据统计分析。安全人员

所以,日志优先级别标准顺序为:
ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
四、最佳实践1 合理地记录信息,不要滥用日志。大量无用的内容都记录到日志中,使得日志文件的体积越来越大甚至撑爆磁盘,所以我们要针对性的使用日志,例如错误异常日志,请求日志,三方系统对接的发送和回传日志等。对于那些像SQL执行日志,调试日志,在特殊场景下,可以临时开启。 但不建议长期开启,高并发的系统中,会很快打满磁盘空间。对于外部系统调用需要记录任务请求前包括入参信息,请求成功后返回成功的信息,请求失败或者异常后重点要记录异常堆栈信息或者失败信息。2 结构化日志不能太随意,否则在大量的数据记录里检索想要的数据如同大海捞针。每行记录的数据要使用同一个固定结构。例如自定义标准的文本结构。或者采用约定好的Json结构。固定接口可以很方便的进行解析和数据分析,让检索变得有效而且容易些。日志记录要高效且有效。有些数据建议必填,例如时间点(业务点),发生时间,发生结果(执行结果),以及上下文信息(例如订单号,机构码,详情简述或者关联点)等。
简要异常推送示例:
运行环境:{?}项目名称:{?}报警时间:{?}当前客户:{?}客户编号:{?}访问路由:{?}请求参数:{?}文件路径:{?}错误行号:{?}错误信息:{?}错误追踪:{?}
业务日志可选字段示例
trace_id 跟踪Id[app_name] 业务线或者模块(根据架构设计决定)Host,server_ipservice_name或者urlrequest_paramsrequest_timerequest_bodyresponse_paramsresponse_timeresponse_bodyform_string 参数可以是get,post或者文件流方式context_message
3.不要影响系统性能尽可能地用异步方式记录日志,日志甚至能直接写入本地日志文件或使用日志传输工具传输至你所选择的日志服务。使用队列也可以作为记录日志的选项,但请记住,在查看日志时可能存在延迟。日志记录频率越高,越影响系统性能。4 日志的分析简单的日志可以通过程序进行分析,存储,将结果展现出来。复杂的日志可以采用一些开源系统进行处理。例如elk , loki。5 日志监控。
1 防止日志过大,导致磁盘空间不足影响其他业务。2 如果采用队列中转日志的话,要监控日志的消费速度,防止大量堆积,影响关键业务。
参考:
https://blog.csdn.net/qf2019/article/details/104245782http://jalan.space/weekly-translation/other/follow-these-logging-best-practices-to-get-the-most-out-of-application-level-logging-slides.html