将JConsole连接到Tomcat并使用MBean选项卡更改记录器级别是理想的方法。一个问题是,除非代码触发了记录器的创建,否则记录器名称不存在。您不能在代码运行之前使用MBean创建记录器。您应该使用JConsole仔细检查MBean本身是否不存在。
Tomcat安装了一个自定义LogManager,该LogManager可以通过当前类加载器进行过滤。JMX将使用系统类加载器,因此ClassLoaderLogManager
可能不会返回记录器名称,因为当前的类加载器不是Web应用程序类加载器。
您始终可以创建随应用程序一起部署的servlet /
jsp表单或网络服务,以获取记录器并设置级别。您可能需要针每个修改记录在内存中,让您的记录水平活跃。级别重新设置为空后,您可以释放记录器。您必须通过包含此类页面来处理安全性问题。
我不会在生产服务器上执行此操作,但是您可以在tomcat中配置WatchedResource,该WatchedResource指向您的logging.properties。然后,无论何时更新该文件,都会使用新设置重新部署Web应用程序。注意该路线的ClassLoader泄漏。



