.NET 中的集中式日志

对于传统的应用程序,使用普通文本文件日志就够用了,这是我们在几十年项目开发中一直采用的方式。

但是随着系统越来越复杂,这种传统的日志已经逐渐无法满足项目的要求。

在集群环境中,如果每台服务器都把日志写入本地的文件中,那么在对日志进行分析的时候,我们就需要逐个打开各自服务器的磁盘中的日志文件,这非常麻烦。

因此,在分布式环境下,我们最好采用集中式的日志服务器。

如果我们的系统运行在Azure、AWS、阿里云等云服务环境中,这些环境中都提供了强大的集中式日志系统。

如果系统运行在自己的数据中心,或者我们不想使用云服务提供的集中式日志系统,那么也可以使用自行托管的集中式日志系统。

本书的作者推荐了两个开源项目 –Exceptionless和Elastic Stack(ELK)。

Exceptionless是用.NET Core开发的开源项目,因此运行环境的搭建对.NET 开发人员而言更友好,搭建步骤也简单。

Elastic Stack(ELK)是目前流行的开源集中式日志分析系统,资料非常丰富,不过由于ELK是用Java开发的,因此运行环境的搭建对于不熟悉Java的开发人员来说难度更高,而且搭建步骤也较为繁琐。(emm我觉得还是ELK香

Exceptionless的开发人员主推它们的日志云服务,也就是不用自己搭建服务器。

而是直接购买他们的云服务,然后程序直接把日志发送给他们的服务器即可,因此在Exceptionless的官网是看不到自己部署服务器的页面的,需要到它的GitHub开源页面取找文档的”Self Hosting”这一节。

无论是Exceptionless还是ELK,它们都提供了在线的云服务,不过由于它们的服务器都在境外,在国内访问它们的服务器的速度很慢,因此我们一般选择自己部署日志服务器的方案。

.NET Core的日志框架非常灵活,我们不用改业务代码就可以灵活地切换和配置不同的日志提供系统。

如果我们开发的是传统的单体系统,可以继续使用本地文本文件日志;

如果我们的系统运行在云服务平台上,那么建议选择对应云服务平台上的集中式日志服务;

如果我们想自己控制日志平台,那么可以自己部署Elastic Stack、Exceptionless等开源的集中式日志系统。

订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部