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
