Spring XML - 自动装配的Logger无法确定目标类名

时间:2016-06-30 07:24:35

标签: java xml spring logging

我已将log4j Logger添加到Spring xml配置中,以便稍后将其用作组件:

<bean id="logger" class="org.apache.log4j.Logger" factory-method="getLogger">
    <constructor-arg type="java.lang.String" value="LoggerName"/>
</bean>

似乎一切正常,但是日志并不指向他们已经自动装配的目标类:

2016-06-30 09:54:23 DEBUG LoggerName:29 - Account does not exists

如何正确设置Logger bean以让它确定目标类名,如下所示:

2016-06-30 09:54:23 DEBUG AccountValidator:29 - Account does not exists

其中AccountValidator是Logger已经自动装入的实际类?

1 个答案:

答案 0 :(得分:2)

在我看来,你应该为每个班级设置一个记录器:

private static final Logger logger = Logger.getLogger(AccountValidator.class);

如果您绝对需要注射,可以使用CDI的注射点机制。这篇文章是关于你想要的:

What is the Spring DI equivalent of CDI's InjectionPoint?