【发布时间】:2011-07-02 05:55:59
【问题描述】:
我正在尝试使用 log4net 在集群上进行分布式日志记录。
我的软件堆栈由孤立的代理组成,这些代理散布在具有唯一实例 ID 的集群周围。我想将记录到正在生成的日志中的每个对象的实例 ID 添加到正在生成的日志中,但我希望所有继承的类对对象实例 ID 使用相同的值,我遵循向每个类添加静态记录器的最佳实践我的,即使一个类继承自基类,它也会有自己的记录器,如下所示
private static ILog _Log =LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
所以我不能使用记录器名称。此外,我不想将对象实例 ID 添加到我创建的每个日志中,我希望它会使用 logn4net 日志自动完成。
我可以使用记录器上下文,但实例 ID 不是全局的,也不属于特定线程。我该怎么办?
【问题讨论】:
-
您是说您不想将实例 ID 添加到每条日志消息中吗?如果你不想要它,你会想要它在哪里?如果你确实想要它,你认为你能在每个你试图写日志条目的地方得到那个值吗?
-
我确实想要日志中的对象 ID,并且我能够在需要记录它的地方获取它,但问题是不同继承级别的日志。如果我有一个 C:B:A 类 C,并且 A 和 B 根据它们的类型有自己的记录器,我如何使 C 类的实例用它自己的对象 id 记录事物,而我只会设置该对象 id该对象一次,并且 C B 或 A 级别的每个日志都将使用该对象 ID?
标签: log4net