Ho un'applicazione esistente che fa tutto il suo logging contro log4j. Usiamo un certo numero di altre librerie che usano anche log4j, o log contro Commons Logging, che finisce usando log4j sotto le copertine nel nostro ambiente. Una delle nostre dipendenze registra anche su slf4j, che funziona anche bene poiché alla fine delega anche a log4j.Come inviare java.util.logging a log4j?
Ora, vorrei aggiungere ehcache a questa applicazione per alcune esigenze di memorizzazione nella cache. Le versioni precedenti di ehcache utilizzavano la registrazione delle risorse comuni, che avrebbe funzionato perfettamente in questo scenario, ma a partire da version 1.6-beta1 hanno rimosso la dipendenza da commons-logging e lo hanno invece sostituito con java.util.logging.
Non avendo familiarità con la registrazione JDK integrata disponibile con java.util.logging, c'è un modo semplice per fare in modo che i log inviati a JUL vengano registrati su log4j, quindi posso usare la mia configurazione esistente e configurare per ogni registrazione proveniente da ehcache?
Guardando le javadocs per luglio, sembra che ho potuto istituire un gruppo di variabili d'ambiente per modificare l'LogManager
implementazione viene utilizzata, e forse l'uso che per avvolgere log4j Logger
s nella classe luglio Logger
. È questo l'approccio corretto?
È un po 'ironico che l'utilizzo di una registrazione JDK incorporata da una libreria possa causare un tale mal di testa quando (la maggior parte) il resto del mondo utilizza invece le librerie di terze parti.
buon collegamento, ma penso che si intende # lug-to-slf4j – araqnid
Buona cattura. Ho aggiornato la risposta di conseguenza. Grazie! – overthink
Questo sembra un buon approccio, tranne che non riesco a farlo funzionare :( –