一旦添加了Logger
,是否有办法删除它?说通过:以编程方式删除记录器的能力
LogManager.GetLogger("loggerName")
在我的研究中,它会出现这是不可能的。我发现的最接近的是能够拨打Clear
hierarchy method。这确实会清除现有的记录器,但我想选择性地将其删除,更不用说这可能不是最安全的事情。
对于一些背景,我记录了每个任务的一个文件,其中可能有数千个并发任务和每个应用程序生命周期的数十万个任务。一种方法是为每个任务创建一个Logger
,然后在任务完成后将其删除。如果没有选择性地删除Logger
的能力,内存将被退役的实例咀嚼。
当然,还有其他可行的设计。通过根据需要向给定的Logger
添加/删除Appenders
和Filters
可解决该问题。此外,还可以创建一个Loggers
和Appenders
的池,然后对每个任务进行配置。
它显然不是一个显示塞如果没有办法删除特定的记录器,一旦它被添加。我只是好奇,如果有一种方法可以删除我可能错过的Logger
?