Log4j, отображающий все регистраторы в один регистратор - PullRequest
2 голосов
/ 24 сентября 2011

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

Я хотел бы использовать стандартную парадигму Logger.getLogger (Clazz.class), но этоне работает с вышеуказанным ограничением.Кроме того, мы не можем записывать в библиотеку операторы нашего приложения-сокета, что может пригодиться.

Существует ли достаточно безболезненный способ сопоставить все, начиная от всех регистраторов, до этого назначенного промежуточного программного обеспечения регистратора?

Я думаю, что наша группа промежуточного программного обеспечения испортила настройку системы ведения журнала предприятия.Похоже, что в SocketAppender есть свойство setApplication, которое следует использовать вместо него.Независимо от того, с чем мы имеем дело ...

1 Ответ

1 голос
/ 26 сентября 2011

Вы бы хотели перенаправить вывод своих «обычных» регистраторов непосредственно в «регистратор промежуточного программного обеспечения», т. Е. Не устанавливая приложение-регистратор промежуточного программного обеспечения на всех «обычных» регистраторах, верно?

Если это так, попробуйте написать свой собственный аппендир:

class MiddlewareRedirectingAppender extends AppenderSkeleton {
     private Logger middlewareLogger = Logger.getLogger("your 'middleware' logger name");

     public void doAppend(LoggingEvent event) {
         // implement whatever filtering, etc. you want
         middlewareLogger.log(...);
     }
}

Присоедините этот appender к своим «обычным» регистраторам или просто к корневому регистратору (в зависимости от того, как ведет себя ваш «промежуточный» регистратор).

Отказ от ответственности: это просто бесполезная идея, я ее не проверял.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...