Не хочу изобретать велосипед, поэтому мне интересно, поддерживает ли какая-либо система регистрации что-то вроде того, что я предлагаю сделать.
Справочная информация:
Я работаю над чрезвычайно большой системой, где десятки тысяч пользователей получают доступ к серверам в любой момент времени.
Здесь задействовано множество окружающих инфраструктур, поэтому вы можете представить, как выглядит исследование редких ошибок, просто прочитав журналы в такой экосистеме.
Наша система использует log4j.
Основной корень проблемы заключался в том, что первоначальные разработчики были, мягко говоря, «экономичными» при обнаружении неизвестной ошибки. Конечно, уровень DEBUG будет полезен в большинстве случаев, но, конечно, производственные журналы устанавливаются только на уровне ОШИБКИ: (
Теперь я пытаюсь сделать мир лучше для наших детей и хочу расширить систему ведения журналов, чтобы быть более «прощающей» в отношении уровня ведения журнала.
То, что я имею в виду, выглядит так:
Поскольку окружающие журналы уровня DEBUG (N до и M после журнала ERROR) могут содержать важные данные, почему бы не понизить уровень журнала системы вокруг ERROR.
Моя идея:
- давайте предположим, что уровень журнала ERROR установлен для системы
- использовать какой-нибудь буфер записи ролловера размера X. Каждый журнал входит туда и пересылается в log4j.
- Когда буфер получает журнал ERROR, он также может выводить контекст N предыдущих и M следующих сообщений журнала либо
- искусственно поднимая уровень журнала до состояния ОШИБКИ (и, конечно, отмечая это) или
- просто зарегистрируйте этот контекст через введенный журнал ERROR
Есть некоторые проблемы, которые нужно решить, но в целом это может сработать.
Есть идеи?
Приветствия