Ho un numero di pacchetti nella mia applicazione web Java. In alcuni di questi utilizzo questo costrutto:Dove definire un logger statico a livello di applicazione?
public class Foo {
private static Logger logger = LoggerFactory.getLogger("com.XXX");
public void bar() {
Foo.logger.debug("Method bar() was just called");
}
}
Naturalmente, è solo un esempio. Tutto funziona bene, ma non mi piace l'idea di inizializzazione del logger in molte classi. È un'ovvia duplicazione del codice. Vorrei spostarlo su qualche classe helper e consentire a tutte le altre classi di accedervi. È un'idea corretta? O forse ci sono altre "buone pratiche" o uno schema?
Sì, si potrebbe. Ma il trucco si trova nella parte '' com.XXX' ', che viene normalmente utilizzata per segnalare da quale classe sta arrivando la voce del registro. Se non ti serve questo, puoi usare il tuo approccio. –
come l'importazione statica! – dogbane
@Andreas_D Sono d'accordo con Peter Knego. È possibile ottenere il nome della classe chiamante ('com.XXX.Foo' nell'esempio) all'interno del metodo' debug() '? – yegor256