Simone Bordet [email protected] [it-torino-java-jug] ha scritto il 
08/01/19 alle 10:42:
> 
> Mi sembra che purtroppo devi allocare ogni volta che chiami uno dei
> metodi di FluentLogger, e non puoi eliminarla se non usando di nuovo
> if (isDebugEnabled()).
> Mi sembra un costo da pagare troppo alto, per una libreria di logging
> e per il beneficio (?) sintattico.
> 

Vero, istanzio un LoggerAtLevel quando c'è da loggare

Una soluzione è istanziare i vari livelli di logger nel costruttore, 
perdendo però la possibilità di cambiare il livello di logging a caldo 
per le istanze di oggetti con vita lunga (= tutti i singleton definiti 
con guice o spring)

https://github.com/ffissore/slf4j-fluent/pull/1

Quanto spesso vi è capitato di cambiare livello di logging a caldo? A me 
non è mai capitato

Un'altra soluzione è usare una cache, tipo una
WeakHashMap<Logger, WeakReference<LoggerAtLevel>>
da accedere in modo sincronizzato

Altre idee?

federico

Reply via email to