Определите регистратор для определенной иерархии вызовов - PullRequest
0 голосов
/ 25 марта 2010

В настоящее время я работаю над log4j для моего приложения. У меня есть конкретные требования к ведению журнала. Мне нужно определить регистратор для конкретной иерархии вызовов . Это означает, что все сообщения журнала определенной иерархии вызовов должны отправляться определенному приложению.

Пример

AddFormAction ( method1 ) --- | | FormBusinessObject ( method4 ) - | - FormDAOObject ( method5 )

EditFormAction (метод2) ----- | ---- FormBusinessObject (метод4) - | - FormDAOObject (метод5)

DeleteFormAction (метод3) ---- | --- FormBusinessObject (метод4) - | - FormDAOObject (метод5)

Я хочу определить регистратор для определенной иерархии вызовов 1 - 4 -5. Эти сообщения должны идти в addform.log.

Я не хочу, чтобы сообщения из иерархий вызовов 2-4-5 или 3-4-5 отправлялись в addform.log.

Надеюсь, мне ясно мое требование. Любая помощь высоко ценится. Спасибо всем заранее за ваши ответы.

Ответы [ 2 ]

0 голосов
/ 25 марта 2010

Один из методов - использовать инъекцию для предоставления зависимостям своего экземпляра логгера.

 public bool addFormAction( .... form data .... ) {
     Logger logger = LogManager.getLogger( "AddFormLogger" );
     FormBusinessObject form = new FormBusinessObject( logger );
     form.setProperty1( parameter1 );
     form.save();
 }

...

 public class FormBusinessObject
 {
      private Logger logger;

      public FormBusinessObject() {
          logger = LogManager.GetLogger( "DefaultLogger" );
      }

      public FormBusinessObject( Logger logger ) {
          logger = logger;
      }

      ...

      public void save() {
           logger.info( "Saving form" );
           ...
      }
}
0 голосов
/ 25 марта 2010

Я не так много знаю о log4j, но это звучит как идеальный случай для AspectJ .

...