Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
aspx
Per ogni riga verr stampata: la data, il livello di severit, la classe chiamante e infine il messaggio. Ricordatevi che questo solo un esempio di utilizzo: sul sito di Log4Net trovate tutte le possibili opzioni di configurazione. Globa.asax Aggiungete un file Global.asax nella root della web application (se non lo avete gi), e nell'evento Application_Start aggiungere la riga: log4net.Config.XmlConfigurator.Configure(); Questo fa si che alla partenza dell'applicazione l'object model di Log4Net si configuri con quanto specificatonel web.config. Utilizzo vero e proprio A questo punto possiamo cominciare a loggare. Nelle classi (o pagine) in cui si vuole loggare aggiungere un field statico fatto cosi': private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); Questa tecnica (in alternativa all'utilizzo di un unico oggetto globale) permette di non dover specificare in ogni chiamata di log il nome della classe in cui ci si trova. usiamo quindi il nostro oggetto log per tracciare con uno dei 5 metodi corrispondenti ai 5 livelli di severit, nell'ordine: log.Debug("Operazione eseguita") log.Info("Operazione eseguita al secondo tentativo") log.Warn("Operazione eseguita con errori"); log.Error("Operazione non completata"); log.Fatal("Il Sistema remoto non risponde"); Il livello di soglia definito nel web.config ("<level value="DEBUG" />") stabilisce quali messaggi verranno effettivamente loggati (dal livello specificato in su). Tracciare una eccezione Tutti e 5 i metodi prevedo un overload per tracciare l'intero stack trace di una eventuale eccezione catturata: int a = 0; try { a = a / a; } catch (Exception ex) { log.Error("Si verificato un errore", ex); } Campi custom e multithread
Molto probabilmente vorremo aggiungere automaticamente dei campi custom nella riga di log, magari per suddividere le righe di diversi utenti In questo caso prima di loggare possiamo impostare una o pi nostre propriet custom alla classe ThreadContext log4net.ThreadContext.Properties["ShoppingCartID"] = Session["ShoppingCartID"].ToString(); log.Debug("Inserito articolo nel carrello")
Nel web.config specifichiamo che vogliamo nell'ouput anche questa propriet aggiungendola alla riga del ConversionPattern: <conversionPattern value="%date %level %property{ShoppingCartID} %logger - %message%newline" />