On Thu, Jun 22, 2017 at 10:31:05AM +0300, Oleksandr Gavenko wrote: > Я использую Java и логи ограничатся Java. > > Постоянно приходиться выяснять причину проблем через содержимое логов. > > Я встречаю сложности типа: > > * длиннючие строки, grep в терминале бессмысленен, через ag в Emacs исследую
У меня xterm длинные строки не обрубает, а показывает в несколько строк, и боюсь, у него это по дефолту. :) Вообще, есть less, он умеет и обрубать, и переносить, и менять режим на ходу (-S). Чтобы легче было что-то найти в длинной выдаче грепа, рекомендуется ставить ключик --color=auto. > * в случае трейсов они многострочные - grep не работает У грепа есть ключики -A и -B, рекомендую. > * события раскиданы по группе файлов, пока копаешься в одном, фокус на тройку > других теряеться (может многотабовый редактор тут поможет, я не уверен) Создатель поставил человеку мозг, который способен держать в фокусе внимания от 3 до 7 объёктов одновременно. А уж как эти объекты перед своим носом повесить -- дело вкуса: некоторые подключают к компу три монитора. > * бессмысленная сложность из-за ротации файла > * из-за ротации файлов теряеться история, лазить в архивах очень больно > * события из разных потоков перемешаны между собою, фильтрация из-за > многострочных трейсов by grep невозможна Вы о логах или трейсах? Трейсы в Java это отдельный мотив для суицида... :) > ================================================================ > > Согласны ли Вы терять события в случае недоступности колектора логов или > гранилища логов? Терять? Я согласен. У меня есть, например, распределённая (по паре городов) почтовая система, и сетевой коллектор логов. При проблемах с сетью, понятно, часть записей может быть потеряна при передаче, даже при высоком уровне резервирования межофисных каналов. Но меня это не волнует. Во-первых, есть ещё локальные хранилища логов на узлах, если что -- можно свериться с ними. Во-вторых, я уверен, что при недостатке каких-то фрагментов я это замечу. Ну и в третьих, необязательно заливать всё в хранилище на лету, если нужна полнота -- есть масса способов надёжно реплицировать данные по сети, пожертвовав риалтаймом. Но эти способы дороже простого риалтайма, и мне с ними заморачиваться не хочется. > Я удивлен что "писатели" в Java мире такого не делают. В мире Java вообще сложилась такая культура программирования, что от этого мира я лично предпочитаю держаться подальше. Хотя никакой связи с тем, что пишется из программы в логи, здесь нет (если речь о логах, а не трейсах). -- Eugene Berdnikov