Sono l'unico manutentore su una base di codici in cui la registrazione viene eseguita utilizzando la registrazione dei comuni Apache.Il registro non statico può essere giustificato?
Tutte le classi contiene questi due importazioni:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Poi un sacco di classi contiene esemplificazione di registro non statico come questo:
/** The log. */
private Log log = LogFactory.getLog(Xyz.class);
Può questo essere giustificato?
Posso tranquillamente cambiare tutte queste chiamate statiche?
EDIT Per quanto riguarda i casi particolari in cui può (a quanto pare) essere a portata di mano: "? Possibile accedere non statica in tutto il codebase essere giustificata" la mia domanda è davvero più
Avendo letto che la documentazione, non è chiaro per me ciò che è sbagliato con dichiarare un campo Registro statico anche nell'ambiente classloader condiviso. Il parametro della classe LogFactory.getLog() può essere modificato in una stringa (Xyz.class.getName()) per una cosa e, a parte questo, dove si trova il danno del logger a cui si accede da classi con diversi programmi di caricamento del contesto thread? I metodi di log dovrebbero essere comunque thread-safe e se non hai problemi più grandi. Qualcuno può fornire una descrizione chiara di cosa può andare storto con i riferimenti log statici? –
@Dov Wasserman Buona domanda, ma per essere onesto con te, non capisco nemmeno il punto della registrazione dei beni comuni. :) – biziclop