Nettizzati

Architetture, programmazione, oggetti …

  •  

    Novembre: 2009
    L M M G V S D
    « Mar    
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30  
  • Blog Stats

    • 239 hits

Posts contrassegnato dai tag ‘C#’

Log4Net: logging in xml

Pubblicato da nettizzati su 20 Marzo , 2008

Oggi vedremo come creare file di log in xml tramite Log4Net.
Il normale uso di Log4Net permette di creare file di log in formato testuale,
ma se è necessario creare dei file di log in formato xml bisogna lavorare un pò di configurazione.
La parte da modificare nella configurazione standard è quella che riguarda l’appender ed in particolare la sezione ‘layout’.
Sostituendo il normale layout, <layout type=”log4net.Layout.PatternLayout”>, con il layout XmlLayout, <layout type=”log4net.Layout.XmlLayout”> si ottiene il risultato voluto.
In reltà questa modifica non è sufficente in quanto l’appender scriverà un file xml mancante dei tags di intestazione del nodo root e quindi con un formato non corretto.
Per ovviare a questo inconveniente sarà necessario inserire nella configurazione del layout
due properties: header e footer che rispettivamente conterranno il testo dell’intestazione e apertura del nodo root e la chiusura del nodo root.
La configurazione del layout apparirà come segue:
<layout type=”log4net.Layout.XmlLayout”>
<param name=”Prefix” value=”" />
<header type=”log4net.Util.PatternString”  value=”&lt;?xml version=’1.0′ ?&gt; &lt;events&gt; %newline” />
<footer type=”log4net.Util.PatternString” value=”&lt;/events&gt; %newline” />
</layout>

nell’esempio sopra citato il tag del nodo root avrà la seguente struttura: <events></events>
naturalmente tale valore può essere modificato a seconda della necessità.
La proprietà ‘appendToFile’ dell’appender dovrà essere impostata a ‘false’ affinchè logs
di esecuzioni diverse non vengano accodate e rendano la struttura del file non corretta.
Di seguito la configurazione completa del logger:

<appender name=”ApplicationXmlLog” type=”log4net.Appender.RollingFileAppender”>
<param name=”file” value=”c:\Orange\Logs\Server.Import\Application\Application-log.xml”/>
<param name=”rollingStyle” value=”Date” />
<param name=”datePattern” value=”ddMMyyyy” />
<param name=”appendToFile” value=”false” />
<param name=”maximumFileSize” value=”100MB” />
<param name=”maxSizeRollBackups” value=”-1″ />
<layout type=”log4net.Layout.XmlLayout”>
<param name=”Prefix” value=”" />
<header type=”log4net.Util.PatternString”  value=”&lt;?xml version=’1.0′ ?&gt; &lt;events&gt; %newline” />
<footer type=”log4net.Util.PatternString” value=”&lt;/events&gt; %newline” />
</layout>
</appender>

<root>
<level value=”WARN”/>
</root>
<logger name=”Application”>
<level value=”INFO”/>
<appender-ref ref=”ApplicationXmlLog”/>
</logger>

…buon divertimento!

Pubblicato su C#, programmazione | Contrassegnato da tag: , , , | Lascia un commento »