domenica 2 aprile 2017

.Net Log4net VB.Net e C#

Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_gestione-dei-log-con-log4net-in-net-46-v_1534.aspx

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

       

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

            'scateno 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;

                //scateno l'eccezione

                int risultato = valore / zero;

 

 

            }

            catch (Exception ex)

            {

                log.Fatal("Errore: " + ex.Message);

               

            }

 

          

        }

Conclusioni

La libreria log4net molto usata dai programmatori, fornisce tante funzionalità 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à.

Nessun commento: