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.

@Slf4j de privado a público

Sé que la anotación lombok.extern.slf4j‘s @Slf4j crea private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);

Pero ¿puedo hacer esto público de alguna manera? Hacer que la anotación cree: public static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);

¡Gracias de antemano!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, la anotación @Slf4j proporcionada por lombok.extern.slf4j solo genera una instancia de registro private static final. Actualmente no hay forma de modificar este comportamiento para generar un registro public static final.

    Sin embargo, hay una solución alternativa para este problema. Simplemente puedes declarar un registro adicional public static final en tu clase e inicializarlo tú mismo usando el método org.slf4j.LoggerFactory.getLogger:

    import org.slf4j.*;
    
    @lombok.extern.slf4j.Slf4j
    public class LogExample {
    
      public static final Logger LOG = LoggerFactory.getLogger(LogExample.class);
    
      public void someMethod() {
        LOG.info("Este es una instancia de registro pública.");
        log.info("Este es una instancia de registro privada.");
      }
    }
    

    De esta manera, aún obtienes los beneficios de @Slf4j al crear una instancia de registro privada, pero también puedes usar una instancia de registro pública si es necesario.

Comments are closed.