Я использую рубин логгер, как это:Удаление цвета украшений из строк перед записью их LOGFILE
$logger = Logger.new MultiIO.new($stdout, log_file)
Если MultiIO
является класс, я получил от this answer. Это работает отлично, в основном, но я использую 'colored'
rubygem, чтобы дать цветной вывод на терминале. К сожалению, это также входит в лог-файл, так как ANSI ускользает от [32mPASS[0m
или некоторых подобных непечатаемых символов.
Каков наилучший подход к дезинфекции строк журнала, сохраняя цвета для строк tty? Я не против обезьян-исправления Logger
или MultiIO
, но я абсолютно не хочу двух разных вызовов для файла журнала и экрана.
У меня никогда не было проблем с escape-символами ANSI в моих файлах журналов. Большинство инструментов Unix ('cat',' more', 'less',' grep', 'tail' и т. Д.) Обрабатывают их просто отлично. – Stefan
Да, я знаю, к сожалению, люди, которые будут нуждаться в них, вероятно, будут использовать notepad.exe или gedit в лучшем случае. – wim