Допустим, у меня есть класс A, который создает регистратор классов. Тогда класс A вызывает экземпляр класса B. Если бы я должен был передать регистратор класса A в класс B, а затем журналы класса B, используя родительский регистратор, каковы его недостатки?
Или это просто префикс сообщения, и все остальные функции такие же, как если бы я создал регистратор для каждого соответствующего класса?
...
public ClassA {
private static final Logger log = LoggerFactory.getLogger(ClassA.class);
public ClassA() {
this.classB = new ClassB(log);
}
public void someMethod() {
classB.noteworthyAction();
}
}
public ClassB {
private Logger log;
public ClassB(Logger log) {
this.log = log;
}
public void noteworthyAction() {
...
log.info("Something happened that was worth logging.");
...
}
}
Примечание: вопрос не в том, как передать логгер между двумя классами. Я просто спрашиваю с точки зрения юзабилити и , теряю ли я какую-либо функциональность или рискую ошибками , используя регистраторы таким образом.
Чтобы объяснить, почему я заинтересован в этом, скажем, два разныхКлассы (ClassA и ClassC, где ClassC идентична ClassA, за исключением своего собственного регистратора) вызывают тот же класс, который имеет важный оператор ведения журнала. Я хочу, чтобы при вызове ClassA в ClassB входил один из приложений, а при вызове ClassC в ClassB - другой пользователь.