【发布时间】:2014-02-21 15:16:49
【问题描述】:
据我所知,所有现有的 log4net 附加程序都旨在推送消息。我有一个包含多种服务的应用程序,我想让开发人员轻松订阅以按需记录消息。
这种方法有几个好处:
- 无人订阅时开销低
- 订阅者端无需打开防火墙端口
- 无需在运行时打开/关闭附加程序
我的一个想法是使用 UDP 将所有消息推送到一个中心位置,并设置该服务器以允许 SignalR 客户端订阅。
我希望有现有的解决方案。这似乎是一种常见的情况。
【问题讨论】:
据我所知,所有现有的 log4net 附加程序都旨在推送消息。我有一个包含多种服务的应用程序,我想让开发人员轻松订阅以按需记录消息。
这种方法有几个好处:
我的一个想法是使用 UDP 将所有消息推送到一个中心位置,并设置该服务器以允许 SignalR 客户端订阅。
我希望有现有的解决方案。这似乎是一种常见的情况。
【问题讨论】:
我不知道有任何令人兴奋的解决方案使用 UDP 推送日志。但是 log4net appenders 真的很容易编写。
评论您的好处:
•没有人订阅时的低开销
这不是真的,您仍然必须在 log4net 应用程序中执行所有附加程序逻辑。您的程序不知道是否有人订阅。
•无需在用户端打开防火墙端口
消息在您的网络上泄漏,任何人都可以得到它们。您必须重新检查所有登录安全信息。
•无需在运行时打开/关闭附加程序
Appender 一直在运行,因此它们会对您的应用程序产生性能影响。 Log4net 是轻等待,但你记录和推送的调试信息越多,它也不会提高你的性能。
【讨论】:
我找不到现有的解决方案,所以我创建了自己的解决方案:
【讨论】: