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
| c | vyčistí buffer s logy |
| s | sleep - zapne/vypne zachytávání logů |
| o | otevře konfigurační soubor |
| r | přenačtě konfigurační soubor |
| l | zapne/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: