首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计Azure云日志记录框架

问设计Azure云日志记录框架
EN

Stack Overflow用户
提问于 2016-02-29 13:16:55
回答 1查看 197关注 0票数 0

我很难找到有关为azure云中的应用程序设计和实现弹性日志框架的标准实践的信息。这个想法是,应用程序不需要自己知道或处理日志记录,信息性\错误消息的日志记录可以在“后台”处理。

我正在考虑的设计基本上是“基于队列的负载平衡模式”(https://msdn.microsoft.com/en-us/library/dn589783.aspx),通过使用自动转发链接服务总线实体来增强。

其想法是,每个应用程序在其资源组中都有自己的本地队列,在那里它会丢弃日志消息。然后,该本地队列将日志消息转发到中央日志队列。当日志消息到达中央队列时,它会触发工作服务(或类似服务)来适当地处理消息(格式化消息并将其发送到适当的数据存储)

这种方法背后的思想是,如果中央消息队列发生故障,日志消息将保留在应用程序的本地队列中,从而提供额外的弹性层。如果本地队列失败,应用程序可以记录到其他数据存储作为备份\冗余。

所以我想知道是否有任何缺点或原因,为什么上面的方法不是一个好的方法,或者是否有人可以推荐一个更好的方法来设计/实现Azure中的共享日志框架?

EN

回答 1

Stack Overflow用户

发布于 2016-02-29 13:35:23

例如,可以很容易地实现一个日志客户端,该客户端将日志消息放到服务总线队列中。当然,最大的问题是:您是否需要它,或者它是否足够简单,比如存储队列,或者甚至直接记录到存储中?

任何类型的日志记录都可以并且应该使用任务内部发布/订阅模式(例如,Event Aggregator)作为后台任务来完成。

现有日志框架

还有一些日志框架已经实现了您所描述的大部分内容,其中一个比较流行的框架名为Log4Net,它使用附加器的概念来描述执行实际日志记录的引擎。这实际上可以是任何东西;存储、队列、数据库,并且只需很少的工作,您也可以编写自己的附加器来满足您的需求。

成本的问题

通常,这归根结底是比弹性更高的成本。而弹性是一个风险计算问题。您的系统崩溃的可能性有多大,在这种情况下,您没有日志文件查看的可能性有多大。最后,您需要记录哪些未由应用程序运行时周围发生的现有日志处理的日志?最后,没有这些信息会让你付出什么代价?这些问题的答案将为您提供一个数字,然后您可以将其转换为对适当日志记录框架的投资。

我知道作为开发人员,我们总是寻求完美的解决方案,但这并不总是合乎逻辑的选择。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35692414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档