Я пытаюсь использовать Log4j в качестве части Платформы Spring, насколько я понимаю с помощью соответствующий боб, система, как предполагается, отображает одноэлементный экземпляр, доступный в коде при отображении регистрирующейся глубины автоматически на класс
Подобный нормальной эксплуатации Log4J как в
Logger log = Logger.getLogger(getClass());
я использовал следующее бобовое определение Spring
<bean id="log4jInitialization"
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass"
value="org.springframework.util.Log4jConfigurer" />
<property name="targetMethod" value="initLogging" />
<property name="arguments">
<list>
<value>conf\log4j.xml</value>
</list>
</property>
</bean>
Но я не могу отобразить этот боб на определенного участника в данном классе, и при этом я не в состоянии использовать его через @autowired
Сообщите мне, существуют ли какие-либо лучшие способы интегрировать Log4j и Spring
С уважением
Mark
Короткий ответ на ваш вопрос в том, что log4j не дружелюбный.
Способ Log4jconfigurer.initLogging ()
Метод имеет значение возврата пустота, поэтому нечего вводить. Идея состоит в том, что вы называете этот метод, который загрузите Bootstraps Log4J, а затем вы используете API log4j как обычно (используя logger.getlogger (getclass ())
).
Вы вообще не будете настраивать log4jconfigurer
как весенний фасоль, но, скорее, вы, как правило, вы можете вызвать его непосредственно из вашего собственного кода во время запуска приложения.
Если это WebApp, то пружина предоставляет альтернативы log4jconfigurer
, которые лучше подходят для этой среды ( log4jwebconfigurer
, log4jconfiglister
).
Кстати, 2 года назад я подал функцию запрос на функцию , чтобы разрешить зарегистрированные завещатели, и он окончательно помечен как FIX для весны 3.1. Ужас