You may want to put some text here

Live logbestanden bekijken in kleur

De meeste ontwikkelaar kennen ondertussen wel het tail commando dat je in de terminal kan gebruiken op elk linux of UNIX gebasseerd besturingssysteem. En dan vooral in combinatie met de -f parameter: deze zorgt ervoor dat veranderingen aan het bestand live op het scherm getoond worden. Een nadeel hiervan is dat het vrij onoverzichtelijke kan worden en dat je nooit in één oogopslag kan zien of er iets serieus is mis gegaan of niet. Hieronder zie je een voorbeeldje van een log bestand zoals je het normaal te zien zou krijgen met “tail -f bestandsnaam” commando.

Maar er is truckje dat je kan doen om dit veel overzichtelijker te maken. We kunnen de output van tail doorsturen naar een perl regex die op zijn beurt lijnen met een bepaald sleutelwoord een bepaalde kleur gaat geven. Door dit te doen krijgen we iets als dit:

Je ziet waarschijnlijk ook wel dat dit het analyzeren van je logbestanden veel gemakkelijker en aangenamer maakt.

Parameters

Hieronder ziet u een basis voorbeeld van het commando:

tail -f bestand | perl -pe 's/.*\bSleutelwoord\b.*/\e[Vet;Voorgrondkleur;Acthergrondkleurm$&\e[0m/g;'
  • Sleutelwoord: Het woord waarnaar je wilt zoeken
  • Vet: 0 zet de tekst in normale dikte en 1 zet de tekst in het vet
  • Voorgrondkleur: De kleur die de tekst moet krijgen
  • Achtergrondkleur: De kleur die de achtergrond van die lijn moet krijgen

Hieronder vind je een overzicht van de vershillende kleuren nummers die je kan gebruiken:

Kleur Voorgrond Achtergrond
zwart 30 40
rood 31 41
groen 32 42
geel 33 43
blauw 34 44
magenta 35 45
cyan 36 46
wit 37 47

U kan de regex ook aanpassen zodat niet de volledige lijn maar bijvoorbeeld enkel het sleutelwoord in een kleurtje gezet wordt.

  • \b((foo|bar)\b zet de sleutelwoorden foo en bar in een kleur
  • .*\b((foo|bar)\b.* zet de volledige lijn die foo of bar bevat in een kleur

Voorbeelden

Hieronder is een voorbeeldje dat alle lijnen die het sleutelwoord Notice bevatten in het groen zet:

tail -f bestand | perl -pe 's/.*\bNotice\b.*/\e[0;32;40m$&\e[0m/g;'

Volgende voorbeeld gebruik ik om mijn PHP logs te bekijken. Door gebruik te maken van puntkomma kan ik vershillende sleutelwoorden een verschillende kleur geven.

tail -f php_error.log | perl -pe 's/.*\bNotice\b.*/\e[1;32;40m$&\e[0m/g; s/.*\bFatal\b.*/\e[1;31;40m$&\e[0m/g; s/.*\bParse\b.*/\e[1;36;40m$&\e[0m/g; s/.*\bWarning\b.*/\e[1;33;40m$&\e[0m/g; s/.*\bCatchable\b.*/\e[1;35;40m$&\e[0m/g'

The Author of this post is Wim Mostmans

Wim Mostmans heeft een eigen webontwikkeling bedrijf Sitebase waar hij voltijds voor werkt. Hij beheert ook nog enkele websites waaronder deze en een Computerforum. Blijf op de hoogte van waar Wim mee bezig is door hem te volgen op Twitter.

Leave a Comment