Invia / reindirizza / instrada java.util.logging.Logger (JUL) a Logback usando SLF4J?

È ansible avere una chiamata tipica a java.util.logging.Logger e avere percorso verso Logback usando SLF4J? Sarebbe bello visto che non dovrei rifattorizzare il vecchio codice jul riga per riga.

Ad esempio, diciamo che abbiamo questa linea:

 private static Logger logger = Logger.getLogger(MahClass.class.getName()); //... logger.info("blah blah blah"); 

Sarebbe bello configurarlo per chiamare SLF4J.

È molto semplice e non è più un problema di prestazioni.

Ci sono due modi documentati nel manuale di SLF4J . Ci sono anche esempi precisi nei Javadoc

Aggiungi jul-to-slf4j.jar al classpath. O attraverso la dipendenza da Maven:

  org.slf4j jul-to-slf4j 1.7.0  

Se non si dispone di logging.properties (per java.util.logging), aggiungere questo al codice bootstrap:

 SLF4JBridgeHandler.removeHandlersForRootLogger(); SLF4JBridgeHandler.install(); 

Se hai logging.properties (e vuoi mantenerlo), aggiungilo a questo:

 handlers = org.slf4j.bridge.SLF4JBridgeHandler 

Per evitare la penalizzazione delle prestazioni, aggiungi this contextListener a logback.xml (a partire dalla versione di logback 0.9.25):

     true  ...