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

问题描述

| 我想向我的消息传递应用程序添加跟踪功能。我使用的每条消息都有一个唯一的标识符,该标识符可用于后续的消息(由原始消息生成的消息)。 为了能够跨多个进程和可能的服务器监视消息的生命周期行为,我想使用log4net远程附加程序。 我可以使用一个记录器,在消息本身中编码消息ID:
Logger: \"MessageLivetime\"
Message: \"SomeId | message text\")
但是我认为,如果我为每条消息创建一个记录器,那将很聪明:
Logger: \"MessageLivetime.SomeId\"
Message: \"message text\")
但是,由于
LogManager
类没有删除记录器的方法,我担心会遇到问题,因为将创建数千个废弃的记录器。 可以更深入地了解log4net的人可以提示我这种方法是否可行吗? 我已经找到了上下文属性。他们是更好的选择吗?以及如何写事件上下文?     

解决方法

在记录器本身中包含ID,我看不出任何好处。对我来说,这感觉错了。 本教程有关日志记录上下文可能会为您提供帮助。假设单个消息的所有操作都在单个线程中发生,则可以为消息ID设置上下文属性,使用适当的日志记录格式,并且消息ID只会出现在您的日志中。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...