2015-02-06 194 views
1

我想使用logger并设置它的属性,但不想在每个对象类中创建Logger我的目标是: 在Spring中创建一个bean,创建属性文件我该如何使用注释,可以做到吗?Java日志记录器Spring

+0

使得每类中的一个记录器的目的(而不是每个对象)在运行时启用细粒度配置。是什么让你摆脱好的做法? – vrudkovsk 2015-02-06 13:06:25

+0

我需要改变记录器的属性我的意思是禁用输出在控制台等,所以我有很多的类和它愚蠢的声明在每个类中私有静态最终记录器记录器= Logger.getLogger(Class.class.getName()); – Murder 2015-02-06 13:29:50

+0

1)记录接收器配置应由维护人员通过配置而非代码开发人员以编程方式控制。 2)在每个类中你仍然有一行代码。但在春季的上下文中比LogginFactory.getLogger更脆弱。 – vrudkovsk 2015-02-06 23:45:18

回答

1

是的,你可以做到这一点,

<bean id="log" class="org.apache.log4j.Logger" factory-method="getRootLogger"/> 

<bean id="app" class="com.App" > 
    <property name="logger" ref="log"/> 
</bean> 

而在你的类,

App bean = new ClassPathXmlApplicationContext("app.xml").getBean(App.class); 

基本春天DI