Loggning med Log4net
Motivation Att kunna bevaka en applikations beteende i realtid eller efter en krasch
Vad finns i .NET? Systems.Diagnostics namespace Trace/Debug klasser Utbyggbart system för ”Listeners” OutputDebugString, File, Event Log Verbose/Info/Warn/Error kan användas Trace.WriteLineIf(switch.Error, ”Panic….”) Finns ej något kategori begrepp Kan ej stänga av/på loggning baserat på kategori Kan ej styra output från olika loggningar till olika ”Listeners”
Log4Net Apachesponsrat initiativ inom projektet ”Apache Logging Services” http://logging.apache.org Log4j, Log4Perl, Log4PHP, log4cpp Log4net! Skapades ursprungligen av NeoWorks som portade Log4j till .NET Har blivigt det mest populära loggningsramverk för .NET Sträva efter likhet men endå utnyttja styrkan i den akuella platformen The log4net project was started by Neoworks Limited in June 2001 The first public release of log4net was made in September 2001, sourceforge => apache
Log4net - grundkoncept LogManager Logger Appender Används för att skapa Loggers Logger Skapar loggmeddelanden Log.Error(”Username does not exist”); Hierarkiska namn Cybercom.Portal.OrderService Appender FileAppender, EventLogAppender
Log4net Exempel
Konfigurering
Log4net Appenders ConsoleAppender EventLogAppender FileAppender & RollingFileAppender ADONetAppender SmtpAppender NetSendAppender RemotingAppender RemotingAppender kan användas för att konsolidera meddelanden från många serverar, live dashboard
Log4net Layouts En Appender använder en layout för att formatera utdata SimpleLayout XmlLayout Pattern Layout Gör det möjligt att komplettera loggningsmeddelandet med information om datum/tid, tråd, loggningsnivå, namn på logger, kontextuell information Man kan även inkludera vilken funktion och källkodsrad som meddelandet skapades på
Filter En Appender kan ha ett filter för att bestämma vilka loggningsmeddelanden som ska loggas LevelFilter StringMatchFilter Kan styra så att ett specifikt meddelande skickas T.ex. via SMS till sin mobil Finns flera filter!
Microsoft Enterprise Library Logging Block Fördelar Grafiskt konfigureringsverktyg Nackdelar Stöder ej hierarkisk konfigurering Ändringar i konfigurering kräver applikationsomstart Långsammare än log4net
Summering Skriv inte dit eget loggningsramverk! Hierarkisk loggninsstruktur ger stor flexibilitet Läs mer: http://logging.apache.org/log4net/