java logback: могу ли я прикрепить пользовательскую функцию всякий раз, когда пишется новый журнал - PullRequest
1 голос
/ 20 февраля 2011

У меня есть приложение red5, использующее язык Java, и я использую logback для ведения журнала.

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

Ответы [ 2 ]

3 голосов
/ 20 февраля 2011

Когда Logback (но идея относится и к Log4J) решает зарегистрировать данный оператор (на основе уровней регистрации и фильтров), он отправляет ILoggingEvent каждому так называемому appender , прикрепленному к данномуlogger и его родителей.

Вам нужно реализовать свой собственный appender (класс, реализующий Appender или, предпочтительно, расширение AppenderBase ) и добавить его в logback.xml (упрощенно):

<root>
    <appender class="com.example.YourCustomAppender"/>
</root>

Как видите, это очень просто, , но , прежде чем писать свой собственный аппендер, убедитесь, что аналогичного аппендера еще не существует .

2 голосов
/ 20 февраля 2011

Вы должны создать свой собственный appender: http://logback.qos.ch/manual/appenders.html

Просто реализуйте doAppend(), как хотите. Например отправить сообщение пользователю. Если вы хотите выполнить «другую команду», вы должны использовать аналогичное решение.

...