Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
Logging 订阅log4net消息_Logging_Log4net - Fatal编程技术网

Logging 订阅log4net消息

Logging 订阅log4net消息,logging,log4net,Logging,Log4net,据我所知,所有现有的log4net appender都是为推送消息而设计的。我有一个具有多个服务的应用程序,我想让开发人员能够轻松地按需订阅日志消息 这种方法有几个好处: 无人订阅时的低开销 无需在用户端打开防火墙端口 无需在运行时打开/关闭附加器 我的一个想法是使用UDP将所有消息推送到一个中心位置,并将服务器设置为允许SignalR客户端订阅 我希望有现成的解决办法。这似乎是一种常见的情况。我不知道有任何令人兴奋的解决方案使用UDP推送日志。然而,log4net附加器非常容易编写 要评论

据我所知,所有现有的log4net appender都是为推送消息而设计的。我有一个具有多个服务的应用程序,我想让开发人员能够轻松地按需订阅日志消息

这种方法有几个好处:

  • 无人订阅时的低开销
  • 无需在用户端打开防火墙端口
  • 无需在运行时打开/关闭附加器
我的一个想法是使用UDP将所有消息推送到一个中心位置,并将服务器设置为允许SignalR客户端订阅


我希望有现成的解决办法。这似乎是一种常见的情况。

我不知道有任何令人兴奋的解决方案使用UDP推送日志。然而,log4net附加器非常容易编写

要评论您的福利:

•无人订阅时的低开销

这不是真的,您仍然需要在log4net应用程序中执行所有appender逻辑。您的程序不知道是否有人订阅了

•无需在用户端打开防火墙端口

消息正在您的网络上泄漏,任何人都可以获取它们。您必须重新检查所有登录的安全信息

•无需在运行时打开/关闭Appender


Appender一直在运行,因此它们会对应用程序的性能产生影响。Log4net很容易等待,但您记录和推送的调试信息越多,它就不会提高您的性能。

我找不到现有的解决方案,因此我创建了自己的解决方案: