首页 > 解决方案 > 将 NLog 日志保存到 Azure TableStorage 的最快方法

问题描述

我设置了一个使用 NLog 将日志消息保存到 Application Insights 和 Azure 表存储的 POC。我使用了AzureTableStorageNLogTargetHarouny 的 NuGet 包,但我不太确定它是否是保存到表存储的最快方法。

我需要批量保存日志消息以提高性能。Harouny 会这样做,还是我应该使用一些叉子?JDetmar说他是分批写作,但Harouny也这样做吗?如果有人知道,那就太好了。

在此期间,我将尝试对其进行基准测试以找出答案,并在我了解更多信息后发布我的发现。

标签: nlogazure-table-storage

解决方案


我需要批量保存日志消息以提高性能。Harouny 会这样做,还是我应该使用一些叉子?JDetmar 说他是分批写作,但 Harouny 也这样做吗?如果有人知道,那就太好了。

由于代码是开源的,您可以轻松检查。

  1. 在两个存储库中找到目标
  2. 检查它们是否覆盖了Write接受多个 logEvents(列表或数组)的方法,例如override void Write(IList<AsyncLogEventInfo> logEvents)

结果:

  • JDetmar:Write使用单个和多个 logEvent 覆盖,因此在使用异步包装器时可以批量工作。见代码

  • Harouny:Write用单个 logEvent 覆盖,而不是多个。所以没有批量写作。见代码

请注意,Harouny 未维护。(见自述文件


推荐阅读