2012-05-04 22 views
6

Chciałbym zmienić kolor danych wyjściowych komunikatu dziennika na terminalu w zależności od poziomu rejestru, tematu itp.Czy dostępny jest prosty rejestrator kolorów dostępny dla Haskell?

Jedyny rejestrator I found, który robi to w Haskell, jest częścią pakietu xmonad-contrib, ale nie chcę brać na niego zależności, ponieważ jest on raczej duży.

Wiem, że Yesod loguje się w kolorze, ale nie jest dla mnie oczywiste, jak sprawić, by jego programowanie działało poza aplikacją internetową Yesod.

Zajrzałem do hslogger, która wydaje się być bardzo podobna do System.Log.Logger, ale żadna z nich nie ma obsługi kolorów po wyjęciu z pudełka.

hslogger jest rozszerzalny przez niestandardowe LogHandlers, więc prawdopodobnie ktoś wdrożył jeden z obsługą kolorów?

Czy istnieją alternatywy do logowania w Haskell, które dotychczas przeoczyłem?

EDIT:

Po poradę Don Stewart, I wdrożone custom log handler który współpracuje z hslogger i ANSI C w celu umożliwienia logowania do terminalu w kolorach.

+0

Może być konieczne przesłanie łaty, np. dodanie kombinatorów kolorów - http://hackage.haskell.org/packages/archive/ansi-wl-pprint/0.6.4/doc/html/Text-PrettyPrint-ANSI-Leijen.html#g:9 –

+1

Dzięki, I ' Daj, że spróbuj - zaimplementuj logHandler z włączoną opcją kolorów i udostępnij go lub ewentualnie pobierz go do hsloggera. –

Odpowiedz

5

W maju 2012 roku, dostępne logowaniem biblioteki dla Haskell są:

A kilka wyspecjalizowanych nich:

  • greg-client - klient do greg rozproszonego systemu rejestrowania
  • fast-logger - system rejestrowania zoptymalizowany do szybkiego IO

Brak obsługi wyjścia kolorowania terminalu ansi. Istnieje kilka bibliotek do kolorowania ansi, więc nie powinno to być zbyt trudne do dodania. Na przykład.

0

Jeśli chcesz zobaczyć inny przykład rejestratora kolorów, zajrzyj do Network.Wai.Middleware.RequestLogger (logStdoutDev) w pakiecie wai-extra. Zmienia to kolor na żądanie, ale powinien służyć jako dobry przykład.

Powiązane problemy