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