Я знаю, что экземпляр log4j-регистратора должен быть создан с помощью LogManager.getLogger(), который делает некоторую магию отражения, чтобы определить вызывающий класс, следовательно, имя, которое важно для конкретной конфигурации уровня журнала , Но что, если мне не нравится, что журнал должен быть создан вручную, и хотите, чтобы он был введен с использованием пружины, как и все другие зависимости класса? При этом вызывающий класс, конечно, не тот, который имеет зависимость от регистратора, это весна (какая-то фабрика). Таким образом, определение имени класса больше не работает. Вопрос может быть даже более простым: обнаружено ли определение имени класса log4j2 каким-то образом с IoC?Log4j2 LogManager.getLogger() с Spring
public class SomeClassWithDependencies {
private final DependencyOne dependencyOne;
private final Logger logger;
@Inject
public SomeClassWithDependencies(
DependencyOne dependencyOne,
Logger logger) { // <- this is created by spring and operates on the name of some spring factory instead of SomeClassWithDependencies
this.dependencyOne = dependencyOne;
this.logger = logger;
}
}