Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asynchronous 用于异步功能的Log4net自定义适配器_Asynchronous_Log4net - Fatal编程技术网

Asynchronous 用于异步功能的Log4net自定义适配器

Asynchronous 用于异步功能的Log4net自定义适配器,asynchronous,log4net,Asynchronous,Log4net,下面是我需要通过Log4net实现的内容。 我的应用程序有一个第三方dll,它将日志同步中继到Splunk RelayLogsToSplunk(字典)。API获取字符串字典并将它们同步发送到splunk。同步功能大大降低了我的应用程序的速度。 我需要扩展Log4net功能(可能是appenderskeleton类),它可以适应这个第三方API,并使splunk的日志记录异步。换句话说,是记录器和API之间的一层,这将使操作异步。谁能帮我设计一下吗? 谢谢 Sudarshan如果您使用的是最新版本

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

如果您使用的是最新版本的log4net,那么该库将是查看的最佳场所-以前的版本在源示例中包含了一个
AsyncAppender

为了获得最佳性能,您还需要缓冲日志事件,因此可能只需要将文件包在
Splunk
appender中,您可以使用来安装它。或者,如果您认为您需要更定制的东西,请获取源代码,这里有很多关于如何进行异步日志记录的示例

有一点需要注意:

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

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