2015-02-06 134 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