Ho fatto che eliminare il check in FluentLogger e ho spostato la creazione dei LoggerAtLevel nel suo costruttore
Ora non viene più creato un nuovo oggetto ad ogni chiamata ai metodi `atDebug` etc, e la possibilità di cambiare livello di logging a caldo è salva Grazie mille per il feedback Simone: il risultato è più vicino allo zucchero sintattico a costo zero o quasi, che era quello che volevo ottenere federico Federico Fissore [email protected] [it-torino-java-jug] ha scritto il 08/01/19 alle 11:31: > 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 > > > ------------------------------------ > Posted by: Federico Fissore <[email protected]> > ------------------------------------ > > ------------------------ > Se desideri essere rimosso dalla mailing list manda una mail a questo > indirizzo: > [email protected] > ---- > > ------------------------------------ > > Yahoo Groups Links > > > >
