2011-05-20 7 views
8

Utilizando el estándar API de registro de Java (java.util.logging.Logger importación), después de la construcción:java API de registro, deshabilitar el registro a la salida estándar

Logger l = Logger.getLogger("mylogger"); 

Ya soy capaz de registrar algo. Como no tiene un FileHandler, no escribe nada en el disco.

l.severe("test with no handler"); 

Escribe (algunos, no todos) los mensajes de registro a la salida. ¿Cómo puedo desactivar esta función? gracias de antemano Agostino

+0

l.setLevel (Level.OFF); –

Respuesta

8

La cuestión que se plantea si no lo hace conocer la configuración predeterminada del registro utilitario java. Dato arquitectónico: 0) Cada registrador, cualquiera que sea su nombre, tiene el registrador de raíz como primario. hechos por defecto: 1) los useParentHandlers propiedad Logger es cierto por defecto 2) el registrador de raíz tiene un ConsoleHandler por defecto

So. Un nuevo registrador, por defecto, envía sus registros también a su padre (punto 1) que es el registrador de raíz (punto 0) que, de forma predeterminada, los registra en la consola (punto 2).

tala Quitar la consola es fácil como:

Logger l0 = Logger.getLogger(""); 
l0.removeHandler(l0.getHandlers()[0]); 
1

Por desactivar esta característica quiere decir que usted no desea registrar nada en absoluto? Si ese es el caso de tener que establecer el nivel de ese registrador en NINGUNO

Por ejemplo, si está utilizando un registro de archivo de propiedades se puede establecer:

mylogger.level=NONE 
+0

Supongo que el OP quiere deshabilitar el inicio de sesión a su salida estándar. – asgs

+1

Sí, deseo desactivar el inicio de sesión en la salida estándar; Quiero iniciar sesión solo para configurar explícitamente Handlers. – AgostinoX

7

registradores estándar de Java se encuentran en una estructura y un niño jerárquicos registradores por defecto heredan los Manipuladores de sus padres. Intente esto para suprimir el uso de Controladores principales:

l.setUseParentHandlers(false); 
+0

Explique por qué su respuesta funcionaría en lugar de solo dar una respuesta. – ArtB

Cuestiones relacionadas