[31.08.2007]

UdpLogViewer - zobrazovač logovacích hlášek log4netu

Jednou jsem potřeboval za běhu aplikace přesně vědět, co se děje uvnitř bez toho, abych aplikaci debugoval. Logovací hlášky generované log4netem obsahovaly všechno potřebné, ale chyběl tam ten real-time prvek. Jediné, co tedy stačilo: nechat log4net emitovat logy na udp port a zachytávat je vlastní aplikací, která by je okamžitě zobrazovala. K tomu právě slouží UdpLogViewer, který mi vždy běží na pozadí, abych věděl, co se aktuálně děje. Aplikace je opět napsána za použití .NET 2.0
Mezi její hlavní znaky patří:
  • Různé styly podle typu logovací hlášky (DEBUG, INFO, ...)
  • Vypisování celých vyjímek, nebo pouze zkrácený výpis
  • Filtrování logů pomocí regulárních výrazů
Klávesové zkratky
cvyčistí buffer s logy
ssleep - zapne/vypne zachytávání logů
ootevře konfigurační soubor
rpřenačtě konfigurační soubor
lzapne/vypne skrolování k poslednímu záznamu
Základní vlastnosti
  • appender v log4netu může být definován takto:
    <appender name="udpAppender" type="log4net.Appender.UdpAppender">
    	<param name="RemoteAddress" value="127.0.0.1" />
    	<param name="RemotePort" value="8080" />
    	<layout type="log4net.Layout.XmlLayout">
    		<param name="Prefix" value="" />
    	</layout>
    </appender>
    <root>
    	<appender-ref ref="udpAppender" />
    	<level value="DEBUG" />
    </root>
    					
  • V konfiguračním souboru je tedy nutné zadat port 8080, na kterém bude UdpLogViewer naslouchat pro příchozí logovací zprávy.
  • V konfiguračním souboru jsou v sekci ConditionsConfig podmínky zobrazení logovací zprávy:
    SwallowByCondition
    Určuje, že log se nemá zobrazit, pokud odpovídá regulárnímu výrazu
    ShowByCondition
    Určuje, jakou barvou se má zobrazit log, pokud odpovídá regulárnímu výrazu
    Podmínky jsou vyhodnocovány v tom pořadí, v jakém jsou zapsány v konfiguračním souboru. Pokud tedy např. bude na začátku zapsáno
    <SwallowByCondition regex="info"/>
    může následovat jakákoliv ShowByCondition, ale nezobrazí se zpráva žádná.
    Naopak pokud tedy např. bude na začátku zapsáno
    <ShowByCondition color="DarkGreen" backColor="LightYellow" regex="info"/>
    Budou se zobrazovat všechny zprávy zeleně na žlutozeleném pozadí.
  • Jsou přiloženy dva soubory:
    FormsViewer.exe
    Klient postavený na Windows forms
    ConsoleViewer.exe
    Konzolový klient
Náhled:
UdpLogViewer small preview