Java 从slf4j上卸下记录器(与getLogger相反)?

Java 从slf4j上卸下记录器(与getLogger相反)?,java,memory,logging,slf4j,Java,Memory,Logging,Slf4j,如何删除记录器 slf4j在内部存储所有创建的记录器。对于长时间运行的应用程序,记录器会随着时间的推移堆积在slf4j中。 当前(v1.7.7),通过slf4j-api使用getLogger,简单记录器工厂或log4j工厂也将新实例存储在哈希映射中。但这些记录器对象永远不会被删除 (请注意,问题不是关于实际的日志框架,而是关于slf4j绑定。)关于slf4j绑定,您真正想知道什么?我相信您可以在配置系列中按名称(或包)配置类的日志级别。我认为可能有一种编程方法。可能有一个JMX绑定。基本上,您希

如何删除记录器

slf4j
在内部存储所有创建的记录器。对于长时间运行的应用程序,记录器会随着时间的推移堆积在
slf4j
中。 当前(
v1.7.7
),通过
slf4j-api
使用
getLogger
,简单记录器工厂或
log4j
工厂也将新实例存储在哈希映射中。但这些记录器对象永远不会被删除


(请注意,问题不是关于实际的日志框架,而是关于slf4j绑定。)

关于slf4j绑定,您真正想知道什么?我相信您可以在配置系列中按名称(或包)配置类的日志级别。我认为可能有一种编程方法。可能有一个JMX绑定。基本上,您希望在什么上下文中禁用日志记录?绑定是问题的根源:它们将每个日志记录程序(曾经创建的)内部存储在并发hashmap中。现在,如果应用程序只请求每个类的记录器,那么您将得到300个记录器实例,这很好。但是,如果名称基于应用程序上下文,那么以前使用过但现在不再使用的记录器将永远保留在那里。@SittingAtTheBay您找到解决方案了吗?