我正在为 Nservicebus v5 使用 DefaultFactory LogManager。我对此很满意,但希望能够通过 web.config 禁用。
我使用了帮助文档中的 web.config 设置
<configSections>
<section name="Logging" type="NServiceBus.Config.Logging, NServiceBus.Core" />
</configSections>
<Logging Threshold="Debug" />
我不想将阈值设置为致命的。我希望一个“无”或禁用=“真”
目录路径也可以设置web.config吗?
更新:为什么我们要忽略错误?
简而言之,我们在服务器上并没有真正的写权限。
长久以来,这不是 100% 正确的。我们的系统正在向微服务发展,问题在于分散式日志记录是跟踪/可视化的噩梦。因此,我们将流跟踪、异常和有限跟踪移至集中式系统。
编程入口点(又名消息处理程序、Web API 端点等)几乎总是包含在每个处理程序上的 try catch 日志抛出中,这涵盖了我们所有的编程错误。这和平常没什么不同。集中记录位置集合了人们可能想要的所有漂亮的红色闪烁实时警报。
只留下配置类型错误,如缺少队列、错误的程序集绑定、错误的配置文件,或者更多运行时风格的东西,如 IoC 布线(在处理程序代码之外)。通过对错误任务的集中日志记录和监控,很容易检测到服务何时中断,如果是,我们打开日志记录,重新启动,尝试错误问题并修复。一旦再次启动,保证交付将处理其他所有事情:D 150mb 日志文件分布在 10 个不同服务器上的日子已经一去不复返了。
DefaultFactory 的简单性很好,因为不需要另一个 nuget 包和相关配置。
这是正确的前进方式吗。许多人会争辩说不。我们能做得更好吗?是的,我们可以实现通用的记录器接口并将其传递给 NServiceBus,但我们还没有安静下来,胜利并不是关键的 atm。
附注:关于我们记录方式的一个非常好的事情是,在我们的后台工具中,我们能够简单地显示每个“订单”的流程,类似于在 graylog 中使用相关 ID。