Come lavorare con log4net in C #

Quando si lavora sulle applicazioni, spesso si desidera registrare i dati dell'applicazione che possono includere, la sequenza di eventi nell'applicazione, le azioni dell'utente o persino gli errori quando si verificano. Esistono molti framework di registrazione che è possibile utilizzare, ma log4net è di gran lunga uno dei framework di registrazione più popolari da utilizzare con applicazioni create o sviluppate in .NET. Si tratta di una libreria open source (una porta della popolare libreria open source log4j per Java) che può essere utilizzata per registrare i dati dell'applicazione su diverse destinazioni di log in .NET.

Installazione di log4net 

Il modo più semplice e veloce per iniziare a usare log4net è installarlo tramite NuGet Package Manager. Supponendo che tu abbia creato un progetto di applicazione console in Visual Studio, puoi installare log4net tramite NuGet Manager, seguendo questi passaggi.

  1. Nella "Finestra Esplora soluzioni", seleziona e fai clic con il pulsante destro del mouse sul progetto
  2. Fare clic su "Gestisci pacchetti NuGet ..."
  3. Fare clic su "Online" e quindi digitare log4net nella casella di ricerca
  4. Seleziona il pacchetto log4net che desideri installare
  5. Fare clic su "Installa" per avviare il processo di installazione

Al momento della stesura di questo documento, l'ultima versione stabile di log4net è 2.0.5. Dopo aver installato log4net tramite NuGet Package Manager, si osserverà l'assembly log4net aggiunto come riferimento al progetto.

Configurazione di log4net

Ora che il pacchetto log4net è stato installato correttamente, aggiungi la seguente riga al file AssemblyInfo.cs nella cartella Proprietà del tuo progetto. Se non viene specificato, le impostazioni di configurazione non verranno prese in considerazione.

[assembly: log4net.Config.XmlConfigurator (ConfigFile = "Log4Net.config", Watch = true)]

In alternativa, puoi anche menzionare lo stesso nel file app.config o web.config.

[assembly: log4net.Config.XmlConfigurator (Watch = true)]

Se i metadati di configurazione di log4net risiedono in qualche altro file (cioè, diverso dai file web.config o app.config), puoi invece specificare quanto segue.

[assembly: log4net.Config.XmlConfigurator (ConfigFile = "log4net.config", Watch = true)]

Il passaggio successivo consiste nello specificare i dettagli di configurazione necessari per log4net nel file app.config o web.config nell'applicazione. Supponendo che si utilizzi un progetto di applicazione console, aggiungere una sezione di configurazione denominata "log4net" nel file app.config come mostrato di seguito.

Ora aggiungi la sezione "" dopo l'elemento nel tuo file app.config. Successivamente, all'interno della sezione "", inserisci i dettagli di configurazione come mostrato nello snippet di codice riportato di seguito.

Questo è tutto ciò che devi fare per configurare log4net. Esaminiamo ora come possiamo usarlo nel nostro codice. L'elemento viene utilizzato per specificare il nome e il tipo di logger da utilizzare. In questo esempio stiamo usando l'appender di file in sequenza. Tuttavia, sono disponibili molti altri tipi di appendici, ad esempio AdoNetAppender, AspNetTraceAppender, ConsoleAppender, ecc. Di seguito è riportato l'elenco completo e come configurare altri allegati.

Utilizzando log4net 

Nella tua classe, crea un riferimento a ILog effettuando una chiamata al metodo statico GetLogger della classe LogManager come mostrato nello snippet di codice riportato di seguito.

privato statico in sola lettura log4net.ILog log = 

log4net.LogManager.GetLogger

(System.Reflection.MethodBase.GetCurrentMethod (). DeclaringType);

È ora possibile utilizzare l'istanza denominata log per registrare i dati nelle destinazioni configurate. Il frammento di codice seguente illustra come ora è possibile sfruttare l'istanza di log per registrare i dati.

log.Debug ("Questo è un messaggio di debug");

log.Info ("Questo è un messaggio informativo");

log.Warn ("Questo è un messaggio di avviso");

log.Error ("Questo è un messaggio di errore");

log.Fatal ("Questo è un messaggio irreversibile");

Ecco un elenco completo del codice che mostra come registrare il messaggio di eccezione in un file di testo utilizzando log4net.

programma di classe

   {

       static readonly log4net.ILog log =

       log4net.LogManager.GetLogger

(System.Reflection.MethodBase.GetCurrentMethod (). DeclaringType);

       static void Main (string [] args)

       {

           provare

           {

               lancia una nuova eccezione ("Questo è un messaggio di prova ...");

           }

           cattura (eccezione ex)

           {

               log.Error (es.Message);

           }          

           Console.Read ();

       }

   }

Dopo aver eseguito il programma precedente, verrà creato un file di testo denominato .log e il messaggio di eccezione specificato con verrà registrato insieme al timestamp. Nota che puoi anche usare log4net a livello di programmazione, cioè configurare log4net a livello di programmazione senza la necessità della configurazione che abbiamo discusso in precedenza.