In principal, despre .NET, VB6. C#,VB.NET, ASP.NET Apoi despre programare si multe alte chestii ... de programare.

Subscribe RSS   Mini tools List

sâmbătă, martie 17, 2007

Tutorial .NET - p13 - Log-area operaţiilor cu log4net
Va rog sa folositi acest URL NOU de la
http://serviciipeweb.ro/iafblog/


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

 

Post page: http://serviciipeweb.ro/iafblog/2007/03/17/Tutorial+NET+P13+Logarea+Opera%c5%a3iilor+Cu+Log4net.aspx

Weblog post by 'admin' on 'Tutorial .NET - p13 - Log-area operaţiilor cu log4net'

Categories:.NET;programare;tutoriale

 
Acest blog s-a mutat la http://www.serviciipeweb.ro/iafblog/