Syntax-färgmarkera loggfiler med log-color-highligt

2016-01-02 18:55:19

Att felsöka eller monitorera processer via en terminal hör till en webbutvecklares vardag. Häromdagen hittade jag ett verktyg som gjorde mitt liv enklare och tänkte dela med mig av denna "upptäckt".

Alla kod-editorer idag har syntax färgsättning som gör kod mycket lättare att läsa och överblicka, men något sådant finns inte inbyggt i normala konsollapplikationer såsom tail.  

Node.js är mycket lämpat för att skapa verktyg för terminalen, och det finns bibliotek som gjort det enkelt att färgsätta konsoll-output. (colors och chalk är de vanligaste) så jag gjorde en sökning på GitHub för att se om någon hade gjort något färdigt verktyg i Node för att färgsätta loggfiler och fann bland annat L. Grigorescu:s projekt log-color-highlight som man tillämpar tillsammans med konsollapplikationer genom att pipe:a output:en från t.ex. tail till detta verktyg för att färgsätta den enligt egna definerade regler.

Ifall du har en färdigt konfigurerad node.js miljö kan du ladda hem och ta i bruk detta verktyg med följande kommando: 

npm install log-color-highlight -g

Man kan ange enskilda färgsättningsregler som parameter, men en snyggare lösning är att skapa sin egen stil-konfiguration i sin hemkatalog. Man refererar till en konfigurationsfil med parameter -c efterföljt av konfigurationsfilens namn. Exempel:

 tail -f log.fil | lch -c min_stil.conf

Att skriva egna regler är relativt enkelt, först anger man färg, sedan anger man nyckelord separerade med mellanslag. För mera avancerade filtrereringar används reguljära uttryck. Mer detaljerad information finns på projektets github-sida.

Jag har gjort min egen konfigurationsfil för monitorering av REST-log:ar (JSON-syntax):

# lch.conf 
# mathias renlund | 02.01.2015

-black '([^"])'

-blue GET POST PUT { } \[ \]' : ,

-red true false

-magenta / '"'

-white [0-9]



Här är slutresultatet i SSH-klienten PuTTY, men fungerar oavsett operativsystem och klient:

putty con