es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Mensajes FINE y anteriores no aparecen al utilizar el registro de ConsoleHandler.

A pesar de consultar las respuestas a esta pregunta, mi LOGGER nunca mostrará mensajes de nivel FINE y por debajo.

Logger root = Logger.getLogger(“”);
root.setLevel(Level.FINEST); // También he probado Level.ALL

// Mensajes de prueba
root.severe(“Severo”);
root.warning(“Advertencia”);
root.info(“Información”);
root.fine(“Bien”);
root.finer(“Más fino”);
root.finest(“Lo más fino”);

El código produce la siguiente salida:

Nov 27, 2021 4:28:45 PM java.util.logging.LogManager$RootLogger log
SEVERE: Severo
Nov 27, 2021 4:28:45 PM java.util.logging.LogManager$RootLogger log
WARNING: Advertencia
Nov 27, 2021 4:28:45 PM java.util.logging.LogManager$RootLogger log
INFO: Información

He intentado actualizar el archivo de propiedades de registro para establecer el nivel del controlador de consola en ALL y FINEST, pero eso no cambia mis resultados. ¿Cómo cambio realmente el nivel de mi registrador?

Mi logging.properties:

handlers= java.util.logging.ConsoleHandler
.level= ALL

java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter

java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución posible

    Una posible solución a este problema es asegurarse de que se esté utilizando el registrador (logger) adecuado. En el ejemplo de código provisto, se está utilizando el registrador raíz, lo cual puede no tener el efecto deseado. En su lugar, cree una nueva instancia de registrador y establezca su nivel en “FINE” o cualquier otro nivel deseado.

    Logger logger = Logger.getLogger("com.example.package");
    logger.setLevel(Level.FINE);
    
    // Mensajes de prueba
    logger.severe("Grave");
    logger.warning("Advertencia");
    logger.info("Información");
    logger.fine("Bien");
    logger.finer("Más fino");
    logger.finest("Más finísimo");
    

    Además, asegúrese de que los controladores (handlers) del registrador tengan el nivel deseado establecido. La propiedad ConsoleHandler.level en el archivo logging.properties debe establecerse en FINE o cualquier otro nivel deseado para habilitar la salida de mensajes con un nivel de FINE o menor.

    # logging.properties
    handlers= java.util.logging.ConsoleHandler
    .level= ALL
    
    java.util.logging.ConsoleHandler.level = FINE
    

    Con estos cambios, los mensajes con un nivel de FINE o menor deben ser emitidos.

    28-nov-2021 12:00:00 AM com.example.package <init>
    FINE: Bien
    28-nov-2021 12:00:00 AM com.example.package <init>
    FINER: Más fino
    28-nov-2021 12:00:00 AM com.example.package <init>
    FINEST: Más finísimo
    

    Si el problema persiste, verifique si hay otras propiedades o configuraciones de registro que puedan estar afectando el comportamiento del registrador. También puede ser útil habilitar la depuración para el marco de registro para comprender por qué ciertos mensajes no se están emitiendo.

Comments are closed.