我已经在Spring xml配置中添加了log4j记录器,以便以后将其用作组件:

<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自动连接到的实际类?

最佳答案

我认为您应该为每个类实例化一个记录器:

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

如果您绝对需要通过注入来完成它,则可以使用CDI注入点机制。这篇文章是关于你想要的:
What is the Spring DI equivalent of CDI's InjectionPoint?

09-05 09:37