Wer kennt das nicht:
Eine Logdatei die durch einen Prozess oder Dienst fortlaufend geschrieben wird – einfach mal ansehen und schauen was so die letzten Logeinträge sind. Letztens ist mir das besonders bei der Logdatei der Windows Server 2003 Firewall aufgefallen. Tail.exe ist mit Sicherheit das Beste was einem hier helfen kann.
Ein einfaches tail -f C:\Windows\pfirewall.log zeigt die letzten geschrieben Logeinträge an. Aber wie wäre es wenn man einzelne Zeilen einfach durch eine Farbe (Rot, Gelb, Blau, usw.) hervorheben kann? Klar man kann auch einfach die benötigten Zeilen anzeigen lassen (z.B. tail -f C:\Windows\pfirewall.log | find „DROP“). Das ist aber nicht so schick :-).
Also dachte ich mir
, das da doch was mit der Powershell gehen müsste. Einfach mal google.de bemüht und viele viele Seiten gefunden, aber leider kam nicht wirklich etwas Fertiges zum Vorschein. Somit musste ich mit selbst etwas einfallen lassen. Rausgekommen ist quasi ein „Einzeiler“, da diesbezüglich die Abbildung der tail.exe-Funktion in Powershell etwas spröde ist.
Nix aufregendes mag der ein oder andere wohl Denken oder Sagen, aber für mich bedeutete das etwas Suchen, Probieren, Suchen, Probieren und FREUEN 🙂
Voraussetzung ist, das beide Potokollierungsoptionen gesetzt sind!
Powershell-Kommando:
gc pfirewall.log -wait | foreach { if ( $_ -match „DROP“ ) { write-host -fore Red $_ } _ elseif ($_ -match „OPEN-INBOUND“) { write-host -fore Yellow $_ } _ elseif ($_ -match „OPEN“) { write-host -fore Green $_ } _ else { write-host -fore white $_ } }
Update 29.05.2009
Alternativ ist natürlich „Baretail“ (http://www.baremetalsoft.com/baretail/) auch gerne genommen.
Update 18.07.2010
LogExpert hat sich auch sehr gut bewährt. Mein Favorit 🙂