能够以编程方式删除记录器

问题描述 投票:0回答:3

添加

Logger
后有没有办法将其删除?通过说:

LogManager.GetLogger("loggerName")

根据我的研究,这似乎是不可能的。我发现的最接近的是调用

Clear
hierarchy 方法 的能力。这确实会清除现有的记录器,但我想有选择地删除它们,更不用说这可能不是最安全的事情。

对于某些背景,我为每个任务记录一个文件,其中每个应用程序生命周期可能有数千个并发任务和数十万个任务。一种方法是为每个任务创建一个

Logger
,然后在任务完成后将其删除。但是,如果没有选择性删除
Logger
的能力,内存将被退休的实例吞噬。

当然,还有可行的替代设计。该问题可以通过根据需要添加/删除给定

Appenders
Filters
来解决。此外,还可以创建
Logger
Loggers
池,然后针对每个任务进行配置。
如果添加特定记录器后无法删除它,那么它显然不是一个显示障碍。我只是好奇是否有办法删除我可能错过的

Appenders

    

log4net
3个回答
3
投票


2
投票

Logger 实例似乎只是创建的。为什么没有删除记录器实例的方法?

定义用户仍然引用的“已删除”记录器的语义非常重要。 来源:

能够以编程方式删除记录器


0
投票

Logger

	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.