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
> 
> 
> 
> 

Reply via email to