Dev Yeah全栈和数据科学课程

是否想系统性地学习和提高Web前端、后台和数据库等技术栈的水平和能力?想成为能力出众的全栈开发人员?希望了解Python、数据科学和分析?在掌握的技术之外,渴望学习一门新的语言/技术,譬如Clojure、Docker/kubernetes容器、AWS/Azure云平台开发? https://www.devyeah.com/

是否希望免费注册、免费试用相关课程?扫描二维码加入Dev Yeah学员群便获得!访问 https://www.devyeah.com/  扫描页面最下面的二维码加入技术群,和各位小伙伴分享、学习和提高技术!

我们通过在线互动直播、线下手把手培训和随时随地的视频回放3种方式为你提供全方位的贴心教学服务。

全程动手实战,提供最佳实践指导,在较短时间内全面提升你的技术深度、广度和自我学习能力,累计项目经验、充实履历,助你获得更好的工作机会,成长为优秀的全栈/数据科学工程师 https://www.devyeah.com/

免费注册和获取《Dev Yeah每日技术精选》:
https://www.devyeah.com/ile

Dev Yeah技术群

Dev Yeah客服

系统日志的最佳实践

级别

系统运行过程中,或多或少会产生不同级别的日志:详情、普通、严重、错误等。一般越严重/重要的,产生的数量越少,反之,越多。

在开发环境中,我们一般会启用最详细的级别,这样可以全程跟踪系统运行情况,在生产环境中,我们一般只打开严重/错误级别,因为这样才是我们感兴趣的。但是,但真的遇到严重问题的时候,我们不能定位具体问题,就可能要打开更详细的级别来辅助我们找到问题的根源。

记录/通知方式

一些公司仍然把所有日志写入文本文件,譬如Windows的IIS网络服务器的日志就是用的CSV格式。

稍好一点做法,是数据库表。但是日志数量不断增加,这些数据都存放在一个表里面,迟早也会遇到需要切分的问题,而且一般数据库的成本比磁盘文件要高,所以一般来说,生成环境只记录最关心的内容。

而且,因为日志有一个天生的特点,就是每天记录的产生都有一个时间戳,而且是随着时间变化不断变大。我们做查询的时候,一般是按照时间来排序,最常见的就是倒序,也就是最新的日志,我们最感兴趣。所以,日志在数据库中的存储,一般是按时间戳做聚集倒序索引。

当然还有更特别的,就是遇到严重/异常的时候,通过邮件发送,甚至短信通知运维。

切分方式

一般是按每天来切分存储,如果数据量很大,那颗粒度会更低,譬如每个小时等。也有按大小来切分的,譬如每10M生成一个文件。这些都是所谓的窗口大小,可以按时间、大小、地区、部门等等来切分。

查询统计

日志的记录,除了排除,我们来会用来做数据统计。

然而从不同纬度分析这些数据麻烦,譬如分布式系统哪个地方的哪个模块那些用户群只有特定问题等,而且一般不能实时。

Raygun.io这个云日志服务提供商满足以上需求,他们以前用的nodejs,后来改成asp.net core,性能提升了20倍。

如何设计最佳的日志系统

是否想掌握怎样实现搞性能的分布式系统开发和设计出高效的日志系统?

可以找我们Dev Yeah学习全栈课程!访问官网 DevYeah.com 帮助你快速成长为更优秀的软件工程师!

版权所有

所有文章内容版权所有,任何形式的转发/使用都必须先征得本站书面同意。本站保留一切追究的权利。