【问题标题】:Log4net custom adapter for asynchronous functionality用于异步功能的 Log4net 自定义适配器
【发布时间】:2015-03-09 05:50:59
【问题描述】:

以下是我需要通过 Log4net 实现的。 我的应用程序有一个第 3 方 dll,它将日志同步中继到 Splunk RelayLogsToSplunk(Dictionary)。 API 采用字符串字典并将它们同步发送到 splunk。同步功能大大减慢了我的应用程序。 我需要扩展 Log4net 功能(可能是 appenderskeleton 类),它可以适应这个第三方 API 并使日志记录到 splunk 异步。换句话说,记录器和 API 之间的一层,这将使操作异步。谁能帮我设计一下? 谢谢 苏达山

【问题讨论】:

    标签: asynchronous log4net


    【解决方案1】:

    如果您使用的是最新版本的 log4net,那么 Log4Net.Async 库将是最好的查看位置 - 以前的版本在源示例中包含一个 AsyncAppender

    为了获得最佳性能,您还希望缓冲日志事件,因此AsyncForwardingAppender 可能就是您所需要的,包裹在您的Splunk 附加程序上,您可以使用Nuget package 来安装它。或者,如果您认为您需要更多定制的东西,请获取源代码,这里有很多关于如何进行异步日志记录的示例。

    注意一点from the documentation

    如果 Log4Net.Async 库仅在非代码中引用(例如,a log4net log.config 文件),那么 VS 构建过程将不会 自动将 Log4Net.Async dll 复制到构建文件夹中 使用 Log4Net.Async 引用其他项目的项目。这个 即使 Copy Local 设置为“True”也会发生。

    为了解决这个问题,我们的一些用户创建了一个虚拟类,其 唯一的目的是扩展 RingBuffer 类,而无需实际做 任何东西或在任何地方都可以使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-11
      • 1970-01-01
      • 1970-01-01
      • 2020-12-16
      相关资源
      最近更新 更多