Соответствие строки Log4j - параметры обратного вызова - PullRequest
4 голосов
/ 15 марта 2011

Я использую log4j для регистрации приложений.Всякий раз, когда регистрируются некоторые сообщения об ошибках, я хотел бы выполнить некоторые действия, такие как отправка сокета msg / посылка traps / db updateЯ мог видеть, что в log4j StringMatchFilter или LevelRange Filter могут быть использованы для grep строки.Но возможно ли зарегистрировать любой метод обратного вызова в log4j, который будет вызываться при любом совпадении строки?Я предполагаю, что это возможный инструмент Jamon, но я не хочу использовать новый фреймворк для этой простой функции.

Ответы [ 2 ]

3 голосов
/ 15 марта 2011

Вы можете зарегистрировать обратный вызов, прикрепив свой собственный аппендир. Просто убедитесь, что вы унаследовали от org.apache.log4j.AppenderSkeleton, поэтому вам нужно только реализовать метод append(LoggingEvent).

AppenderSkeleton обрабатывает фильтрацию, поэтому вы можете добавить обычную <filter> конфигурацию для вашего аппендера, и ваш метод append будет вызываться только для совпадающих событий.

1 голос
/ 15 марта 2011

Являются ли эти действия частью вашей бизнес-логики или это просто дополнительные способы хранения информации вашего журнала?

Если это часть вашей бизнес-логики, то я думаю, что вы пытаетесь присоединить их в неправильной точке.

Если вам просто нужно больше способов переноса / хранения журналов, посмотрите на различные реализации Appender. Уже существует широкий спектр различных Appender версий, и присоединение их к соответствующему логгеру может просто сделать то, что вы хотите.

Если это не то, что вы хотите, уточните ваши требования.

...