我有一个 JGroups 设置,其中包含多个 JGroups 协议栈(例如,一个用于应用程序服务器,这里是 JBoss EAP5,一个用于自定义应用程序)。
我希望将 JGroups 的协议日志级别设置为给定级别,但仅针对给定协议实例,不适用于全局记录器。即我想设置日志级别,但仅适用于协议栈,而不是其他协议栈。这用于调试我的自定义应用程序 JGroups 协议栈。
我开始在日志配置(log4j)中为给定协议全局设置日志级别,但这对所有协议栈都是有效的。因此,产生了大量的日志消息。
然后我尝试了一种更好的方法:所有 JGroups 协议的超类Protocol
都有一个方法setLevel
可以用来设置日志记录级别(可以通过编程方式或通过 XML 配置文件进行配置)。由于Protocol.setLevel(String)
只能从 JGroups 2.8.0 获得,我隔离了 EAR 类加载器以便从 JBoss EAP5 服务器覆盖 JGroups 2.6.20。但效果与全局配置相同:为所有协议栈设置日志级别。
有没有办法为给定 ProtocolStack 的给定协议配置 JGroups 日志记录级别?如果是,该怎么做?