używać rejestratora ruby tak:Usuwanie kolorowej dekoracji z ciągów znaków przed zapisaniem ich do logfile
$logger = Logger.new MultiIO.new($stdout, log_file)
Jeżeli MultiIO
to klasa dostałem od this answer. Działa to świetnie, głównie, ale używam rubygem 'colored'
, aby nadać kolorowy wydruk na terminalu. Niestety kończy się to również w pliku logu, ponieważ ANSI ucieka wyglądając jak [32mPASS[0m
lub niektóre podobne niedrukowalne znaki śmieci.
Jakie jest najlepsze podejście do odkażania ciągów plików dziennika przy zachowaniu kolorów dla ciągów tty? Nie mam nic przeciwko poprawianiu małpkom Logger
lub MultiIO
, ale absolutnie nie chcę dwóch różnych wywołań dla pliku logu i ekranu.
Nigdy nie miałem żadnych problemów ze znakami escape ANSI w moich plikach dziennika. Większość narzędzi uniksowych ('cat',' more', 'less',' grep', 'tail' itd.) Radzi sobie z nimi dobrze. – Stefan
Tak, wiem, niestety ludzie, którzy będą ich potrzebować, prawdopodobnie będą używać programu notepad.exe lub w najlepszym razie gedit. – wim