¿Recargar tomcat logging en tiempo de ejecución?

Actualmente estamos usando Tomcat 7 con una única configuración de registro especificada usando -Djava.util.logging.config.file y el ClassLoaderLogManager predeterminado con -Djava.util.logging.manager = "org.apache.juli.ClassLoaderLogManager". Esto funciona muy bien para una configuración de inicio de una sola vez.

Tenemos varios servlets y otro código que se ejecuta fuera del contexto del servlet. Ejecutamos en un servidor tomcat dedicado que controlamos completamente, y queremos que todo el código use la misma configuración de registro. Estamos utilizando la API java.util.logging para el registro. Esto significa que LogManager.getLogManager (). GetLogger (nombre) debe funcionar y que Logger.isLoggable (Nivel) debe funcionar.

ClassLoaderLogManager parece estar orientado a lo contrario de nuestra situación: permitir que los servlets especifiquen configuraciones de registro individuales. Queremos que todos los registros sean controlados en un solo lugar. Pero nosotroshacer desea los otros beneficios de JULI como los FileHandlers mejorados.

Ahora la pregunta: ¿Cómo puedorecargar ¿Estas configuraciones del archivo en tiempo de ejecución sin volver a cargar la aplicación?

Lo que he intentado:

LogManager.getLogManger.readConfiguration (): da como resultado un NOOP efectivo en ClassLoaderLogManager porque Thread.currentThread.getContextClassLoader () no es el cargador de clases del sistema.Estableciendo explícitamente Thread.setContextClassLoader (ClassLoader.getSystemClassLoader ()) y luego llamando a lo anterior. Esto realmente leyó el archivo de configuración (incluido en un depurador) pero no propagó los cambios a los registradores existentes en los ClassLoaders contenidos. Logger.setLevel () nunca fue llamado en los registradores existentes.También llamando a reset () antes de que estas llamadas no parezcan cambiar nada.JMX parece exponer solo los registradores para un solo ClassLoader (posiblemente el sistema ClassLoader)

Respuestas a la pregunta(2)

Su respuesta a la pregunta