Toparvion / analog

🔎 Flexible web-based real-time log viewer
MIT License
19 stars 5 forks source link

Подсветка уровня DEBUG в некоторых случаях выводится цветом для уровня INFO #6

Closed mnatikk closed 6 years ago

mnatikk commented 6 years ago

Проблема с подсветкой на примере лога приложения console.out:

2018-02-17 23:53:28.608 DEBUG 61348 --- [on(2)-10.0.63.8] o.s.m.s.b.SimpleBrokerMessageHandler : Broadcasting to 1 sessions.
2018-02-17 23:53:29.112 INFO 61348 --- [ask-scheduler-5] o.s.i.a.AggregatingMessageHandler : Expiring MessageGroup with correlationKey[1]
2018-02-17 23:53:29.115 DEBUG 61348 --- [on(2)-10.0.63.8] o.s.m.s.b.SimpleBrokerMessageHandler : Processing MESSAGE destination=/topic//Users/mnatikk/app/analog-v0.8.1/console.out session=null payload={"lines":[{"text":"2018-02-17 23:53:28.604 INFO 61348 --- [ask-scheduler-8] o.s...(truncated)
2018-02-17 23:53:29.116 DEBUG 61348 --- [on(2)-10.0.63.8] o.s.m.s.b.SimpleBrokerMessageHandler : Broadcasting to 1 sessions.

по-строчно из лога подсветка следующих цветов:

DEBUG - серый INFO - зеленый DEBUG - зеленый (ожидается серый) DEBUG - серый

2018-02-17 23 59 22

Toparvion commented 6 years ago

@mnatikk, причиной ложного срабатывания явился вот этот фрагмент строки:

23:53:28.604 INFO 61348

Приложение ориентируется на простые вхождения имен уровней в анализируемые строки. Такой примитивный алгоритм был выбран специально, чтобы удовлетворить многообразию форматов логов, особенно в системах наподобие Puppet.

Ошибка же заключается в том, что для поиска вхождений была задействована заведомо недетерминированная функция, из-за которой совпадение было обнаружено не в начале строки (по DEBUG), а почти в конце (по INFO). Ее замена, однако, займет некоторое время. Как будет сделано, сообщу.

Toparvion commented 6 years ago

ℹ️ Результаты профилирования версий детектора

Детектор уровней логирования на регулярных выражениях

before (среднее время детектирования 3125 мс)

Детектор уровней логирования на низкоуровневой логике

after (среднее время детектирования 41 мс)

По результатам профилирования в качестве рабочей выбрана версия детектора на низкоуровневой логике.

Toparvion commented 6 years ago

✔️ Работы по этой задаче завершены. Детектор уровней был переписан полностью на низкоуровневой логике, так как замеры производительности предыдущей его реализации показали недопустимую утилизацию им процессора (см. комментарий выше).

ℹ️ Для задачи не будет отдельного релиза всего приложения; она войдет в состав релиза, планируемого к выпуску после завершения #10 (возможность скачивать текущий выбранный лог).