log4net - 为跟踪目的创建许多记录器是一个好习惯吗?

Zeb*_*ebi 1 c# messaging log4net nservicebus

我想在我的消息传递应用程序中添加跟踪功能.我使用的每条消息都有一个唯一的标识符,该标识符被转发到后续消息(由原始消息产生的消息).

为了能够跨多个进程和可能的服务器监视消息的生命周期行为,我想使用log4net远程处理appender.

我可以使用一个记录器并在消息本身中编码消息ID:

  • Logger: "MessageLivetime" Message: "SomeId | message text")

但是我认为如果我为每条消息创建一个记录器会很聪明:

  • Logger: "MessageLivetime.SomeId" Message: "message text")

但是由于LogManager该类没有删除记录器的方法,我担心会遇到问题,因为会创建数千个废弃的记录器.

如果这种方法可行,那么对log4net更有洞察力的人能给我一个暗示吗?

我已经找到了上下文属性.他们是更好的选择吗?我如何写入事件上下文?

Jon*_*eet 5

我认为在记录器本身中包含ID没有任何好处.这对我来说是错误的.

有关记录上下文的本教程可能对您有所帮助.假设单个消息的所有内容都出现在一个线程中,您可以为消息ID设置上下文属性,使用适当的日志记录格式,消息ID将只显示在日志中.