Per un’applicazione molto semplice sviluppata in .NET dovevo eseguire il log di tutto quello che l’Applicazione eseguiva, permettendone il controllo. Dopo aver provato a creare dei log fatti “a mano” mi sono ricordato della librearia di logging sviluppata da Apache e l’ho inserita nel mio progetto, metteno infatti a disposizione una pratica dll da incorporare. L’utilizzo è molto semplice (ma presenta notevoli opzioni e possibilità di effettuare il logging in vari modi) basta infatti inserire il markup dell’assembly in questo modo:
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
e configurare il codice in modo da creare un reference al Log(un possibile esempio):
public class Log { public readonly ILog logger; public Log() { logger = LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod()
.DeclaringType); logger.Info("Logger inizializzato"); } }
Utilizzando la Reflection si crea inoltre un codice portabile in ogni applicazione, basta infatti creare questa Classe ed accedere all’oggetto logger per poter generare dei messaggi di log:
logger.Warn("Eccezione")
Un’altra fase fondamentale del logging tramite log4Net è la configurazione dell mezzo su cui loggare, il metodo più semplice è l’Output a Console ma di maggiore utilità è l’Output su file di Testo. Vediamo come:
Il modo più semplice è quello di utilizzare il file di Configurazione presente nella propria Applicazione nel caso di Applicazioni Windows basta aggiungere al file App.Config questo codice all’interno della sezione <configuration></configuration>:
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="RollingFile"
type="log4net.Appender.RollingFileAppender">
<file value="C:\Log\App.log" />
<appendToFile value="true" />
<maximumFileSize value="1KB" />
<datePattern value="yyyyMMdd-HHmm" />
<maxSizeRollBackups value="2" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %logger - %message%newline" />
</layout>
</appender> <root>
<level value="ALL" />
<appender-ref ref="RollingFile" />
</root>
</log4net>
Con questa configurazione si ha quindi un log su file di Testo, che non appena il file supera la dimensione scelta in maximumfileSize ne crea un’altro, evitando di creare file di log di dimensioni enormi. Questa è solo una delle possibili configurazioni della libreria Apache log4net, maggiori informazioni e dettagli possono essere reperite qui.
Maggiori Dettagli
Buon Log a Tutti 🙂