Ho usato Log4Net per diversi mesi, e creo un nuovo Logger come variabile membro per ogni classe, in questo modo:Log4Net: come ottenere il logger?
// Member variables
private readonly ILog m_Logger = LogManager.GetLogger("MyClass");
Poi invoco il registratore di ogni metodo nella classe che i registri, come this:
// Initialize
m_Logger.Info("MyClass.MyMethod() invoked.");
...
m_Logger.Debug("MyClass.MyMethod() did something...");
...
m_Logger.Info("MyClass.MyMethod() completed.");
C'è qualche motivo per non utilizzare questo approccio, o c'è un modo migliore per impostare il logger? Grazie per l'aiuto.
"usa la riflessione per ottenere il nome del metodo" - ma non è necessario chiedere la riflessione per eseguire una sovrapposizione e consultare i metadati dell'assieme per il nome del metodo: è stato semplicemente digitato nel file sorgente –
È solo un esempio . L'uso della riflessione consente di tagliare e incollare semplicemente la linea su una moltitudine di punti senza dover modificare la linea per il nome del metodo corretto. – Russ
Questo non lo rende più sicuro? –