【发布时间】:2018-01-30 19:27:04
【问题描述】:
所以,我们的项目最近开始使用 ServiceStack 中的服务器发送事件。我们的项目还使用 log4net 提供程序登录 log4net。现在我已经使用 SSE 完成了几个组件,我想知道是否其他人在想我在这里......
我通常使用 log4net 的“调试”级别来获得真正的“调试”体验。当我在开发服务器上,或者当我试图找出问题的根源时......我会将日志记录级别更改为“调试”并前往城镇。虽然我不会使用“调试”在更高的环境中运行 - 我发现相同级别的信息是我可能有兴趣发送给客户的信息。我在服务中有一些长期运行的进程,它通过 SSE 与 Web 仪表板通信以报告更新。我发现我通常会记录到“调试”的信息类型通常是我想发送到我的仪表板的。正如你可以想象的那样,我的代码开始看起来像这样,并且在许多方面:
var msg = $"Processed {count} records.";
MessageLog.Debug(msg);
ServerEvents.NotifyChannel(channelName, selector, msg);
看到这一点,我想创建一个瘦包装器,以便通过一次调用将消息发送到日志、SSE 或两者。目前 ServiceStack 中是否存在这种类型的设置?我意识到它是高级别的,并且有一些细节需要解决(日志级别、通道和选择器值),但我必须相信有一些方法可以简化它。
【问题讨论】:
-
我一直在尝试为 SS 提供调试/管理仪表板的想法,我认为这将是完美的。选择日志记录级别并将其填充到插件的网页中。其他想法包括按请求进行流量分析、注册插件、活动会话(来自缓存提供者)等。
-
@jklemmack - 我应该在我的帖子中更清楚 - 我在这里询问的 ServiceStack 项目是一个正在运行的 Windows 服务。我提到的与之通信的 Web 仪表板是一个使用 TypeScript 的 node.js 项目。但我同意,我也玩过这个,使用 AutoQuery 查询请求和 log4net 日志......连接起来很容易,只是没有在专用页面或任何东西上。我们只是为此使用了标准的 AutoQuery 管理页面。
标签: asp.net-web-api servicestack log4net