Tutorial .NET – p13 – Log-area operaţiilor cu log4net

In orice aplicaţie este bine sa ţinem evidenta
operaţiilor făcute de utilizator( ce a modificat sau chiar ce a văzut). In
acest scop putem folosi fie mecanismul de trace din .net,  fie o soluţie proprie, fie
Logging and Instrumentation Application Block(http://msdn2.microsoft.com/en-us/library/ms998162.aspx), fie log4net(http://logging.apache.org/log4net/

 

Vom utiliza in acest exemplu log4net .El
suporta log-area operaţiilor in felurite moduri – in fişier, baza de date,
email, telnet si multe altele.

Downloadati versiunea 1.2.10 de la adresa http://logging.apache.org/log4net/downloads.html
si sa începem configurarea aplicaţiei. Copiaţi conţinutul folder-ului log4net-1.2.10\bin\net\2.0\debug
in C:\Book\sharedDll si sa începem modificarea proiectului Windows pentru a înregistra
ce a făcut utilizatorul

 

Deschidem Book.sln si deschidem App.Config.
Acolo scriem următoarele imediat sub configuration:

  <configSections>

    <section name=log4net type=log4net.Config.Log4NetConfigurationSectionHandler,
log4net
/>

  </configSections>

  <log4net>

    <appender name=RollingLogFileAppender type=log4net.Appender.RollingFileAppender>

      <File value=Log4Net.log/>

      <AppendToFile value=true/>

      <rollingStyle value=Composite/>

      <maximumFileSize value=1MB/>

      <maxSizeRollBackups value=10/>

      <datePattern value=yyyyMMdd/>

      <layout type=log4net.Layout.PatternLayout>

        <param name=ConversionPattern value=%d [%t] %-5p %c %m%n/>

      </layout>

    </appender>

    <root>

      <level value=Debug/>

      <appender-ref ref=RollingLogFileAppender/>

    </root>

  </log4net>

 

 

După cum se vede, folosim RollingLogFileAppender
( adică un fişier a cărui denumire va fi diferita in fiecare zi după
modelul
datePattern ) de tipul Composite(daca depaseste  maximumFileSize atunci se creează un nou fişier
in ziua respectiva).

 

Sa adăugam referinţa proiectului nostru
(BookWin) dll-ul log4net.dll din sharedDll .Avem de făcut următoarele in
Program.cs :

In funcţia Main scriem prima linie:

log4net.Config.XmlConfigurator.Configure();

apoi adăugam următorul membru in clasa Program:

public static readonly
log4net.ILog logger = log4net.LogManager.GetLogger(“RollingLogFileAppender”);

 

Haide sa scriem in fişier de cite ori un utilizator
adaugă un nou Publisher.

In frmPublisherAdd.cs, la evenimentul private void
btnAdd_Click(object sender, EventArgs e)
vom adăuga codul
de log-are:

if (Program.logger.IsDebugEnabled)

                Program.logger.Debug(“Adaugat publisher cu numele:” +
p.Name);

 

Cam atit e de făcut. Acum rulaţi proiectul, adaugaţi
un Publisher, si o sa vedeţi un fişier log4Net.log in care scrie următoarele:

 

<data> [1] DEBUG RollingLogFileAppender
Adaugat publisher cu numele:newpub

 

 

E interesant la log4Net ca puteţi adăuga mai mulţi
appender-i, astfel ca , de pilda, sa trimită si email de cate ori o modificare
e făcuta.

 Observatie 1:

Pentru aplicatia Web, modificarile in Web.Config sunt aceleasi – iar in global.asax trebuie pusa linia urmatoare:

 void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup      
        log4net.Config.XmlConfigurator.Configure();   
    }

Observatie 2:

In loc sa punem codul in fiecare pagina de Web si Windowspe salvare, mai bine punem in fiecare cod de “salvare” al obiectelor- de pilda in public void Save()

Lectura obligatorie: documentaţia de
log4net

 

Leave a Reply

Your email address will not be published. Required fields are marked *