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.
{
// Code that runs on application startup
log4net.Config.XmlConfigurator.Configure();
}
Lectura obligatorie: documentaţia de
log4net…