Я написал собственный класс Logger, в котором нужно внедрить bean-компонент @RequestScoped (MyRequestContext) для регистрации информации, специфичной для запроса. Я также хочу записать в журнал класс (имя) класса, регистрирующего что-то, что я могу получить из параметра InjectionPoint из конструктора.
Упрощенная версия моего регистратора будет выглядеть так:
@Dependent
public class MyLogger
{
@Inject
private MyRequestContext myRequestContext;
private Class loggingSourceClass;
@Inject
public MyLogger(InjectionPoint injectionPoint)
{
// get class
loggingSourceClass = injectionPoint.getMember().getDeclaringClass();
}
public void log(String msg)
{
System.out.println(loggingSourceClass.getName() + " - " myRequestContext.getValue() + " -" + msg);
}
}
Я ходил туда-сюда и не могу решить, является ли это хорошим подходом.
Есть ли лучший и / или более эффективный способ создания регистратора, который имеет эту информацию (контекст запроса и класс вызова / инъекции)?
Правильно ли выбран @Dependent?
Заранее большое спасибо!