In questo articolo il lettore si avvicinerà all’utilizzo della libreria log4net ( https://logging.apache.org/log4net/ )con la quale possiamo aggiungere alle nostre applicazioni, sia web, o windows application o console application, la possibilità di scrivere dei file di log, utili per fornire indicazioni utente.
In questo articolo, vedremo come utilizzarla in Visual Studio 2015, tramite il linguaggio di programmazione VB.Net e C# in ambito Windows Application, questa libreria gratuita fornirà alle nostre nostre applicazioni la funzionalità di una gestione log.
Prima di tutto bisogna andare sul sito e scaricare l’ultima versione della libreria, qui https://logging.apache.org/log4net/download_log4net.cgi trovate sia quella con il sorgente che quella compilata.
Una volta scaricato il file compresso della libreria compilata, decomprimete il pacchetto.
Creazione del progetto
Si crea un nuovo progetto di tipo Windows Application, secondo il linguaggio di proprio interesse.
Aggiungete come riferimenti la libreria appena scaricata, in questo modo il nostro progetto potrà utilizzata.
Nel file App.config, nella sezione “configSections” dobbiamo inserire il markup per tale libreria.
Qui di seguito si riporta tale esempio.
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
Continuiamo a modificare il file di configurazione, aggiungendo le impostazioni per indicare il nome e dove salvare il file, tramite il tag “file” dove nell’attributo value va inserito nome e percorso del file.
La dimensione massima del file, se indicare nel file anche il giorno e nome applicazione, e tante altre indicazioni.
Qui di seguito si riporta tale indicazioni.
<log4net>
<appender name="Console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<!-- Pattern to output the caller's file name and line number -->
<conversionPattern value="%5level [%thread] (%file:%line) - %message%newline"/>
</layout>
</appender>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<file value="LOG\LogMessaggi.log"/>
<appendToFile value="true"/>
<maximumFileSize value="1024KB"/>
<maxSizeRollBackups value="5"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %logger - %message%newline"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="LogFileAppender"/>
</root>
</log4net>
Per sapere maggiori informazioni sulla configurazione, tramite il sito ufficiale del sito, nella guida in linea, possiamo comprendere le varie impostazioni che possiamo utilizzare.
Stesura del codice
Ora che abbiamo impostato il file di configurazione, non ci resta che scrivere il codice.
Nella form, inseriamo un pulsante, che avrà lo scopo di scrivere il file di log.
Dopo aver inserito il pulsante, facciamo doppio click in modo che si passa in visualizzazione codice.
In alto sopra ogni dichiarazione, scriviamo lo spazio dei nomi per utilizzare tale libreria, qui di seguito si riporta il frammento di codice per entrambi i linguaggi.
VB.Net
Imports log4net
C#
using log4net;
A questo punto, a livello di codice, dobbiamo scrivere la dichiarazione di variabile per utilizzare la classe ilog per la gestione dei log, tale dichiarazione va scritta dopo il nome della classe della form, in modo che possiamo utilizzare tale oggetto in varie parti della nostra form.
Qui di seguito la dichiarazione a livello di classe.
VB.Net
Private Shared ReadOnly log As ILog = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
C#
private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
Nell’evento load della nostra form, inseriamo il codice che permette di inizializzare le impostazioni presenti nel file di configurazione.
Qui di seguito tali dichiarazione per entrambi i linguaggi.
VB.Net
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
log4net.Config.XmlConfigurator.Configure()
End Sub
C#
private void Form1_Load(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
}
Ora non ci resta che scrivere nell’evento click del pulsante, il codice per scrivere il testo nel file di log.
Tramite il metodo Info, verrà scritto il testo informativo, mentre nella gestione degli errori, e precisamente dove viene gestita l’eccezione sollevata tramite il metodo “Fatal” viene scritto il testo per quanto riguarda gli errori.
Qui di seguito un esempio di frammento di codice delle suddette operazioni per entrambi i linguaggi.
VB.Net
Private Sub BtnLog_Click(sender As Object, e As EventArgs) Handles BtnLog.Click
log.Info("Testo del log informativo")
Try
'codice
Dim zero As Integer = 0
Dim valore As Integer = 8
'sollevo l'eccezione
Dim risultato As Integer = valore \ zero
Catch ex As Exception
log.Fatal("Errore: " + ex.Message)
End Try
End Sub
C#
private void btnLog_Click(object sender, EventArgs e)
{
log.Info("Testo del log informativo");
try
{
//codice
int zero = 0;
int valore = 8;
//sollevo l'eccezione
int risultato = valore / zero;
}
catch (Exception ex)
{
log.Fatal("Errore: " + ex.Message);
}
}
Conclusioni
La libreria log4net molto usata dai programmatori, fornisce tante opportunità proprio per le funzionalità e flessibilità che dispone, rendendo la programmazione molto autonoma e di facile utilizzo per chiunque.
Utilizzabile in vari scenari, che possono essere web, o windows applicationi, e per tutti i linguaggi .Net senza difficoltà.