爲避免重複打印日誌,浪費磁盤空間,務必在log4j.xml中設置additivity=false;
如:
<logger name="com.testinc.contacts.config" additivity="false" />app
log4j.additivity是 子Logger 是否繼承 父Logger 的 輸出源(appender) 的標誌位。具體說,默認狀況下 子Logger 會繼承 父Logger 的appender,也就是說 子Logger 會在 父Logger 的appender裏輸出。如果additivity設爲false,則 子Logger 只會在本身的appender裏輸出,而不會在 父Logger 的appender裏輸出。
如:
log4j.rootLogger=INFO, stdout,logfile
log4j.logger.com.ambow.upgrade=INFO, dataSync 日誌
則com.ambow.upgrade包及其子包下的Logger不光在Appender dataSync裏輸出,也會在rootLogger的Appender stuout和logfile中輸出;
若想讓com.ambow.upgrade包及其子包下的Logger只在Appender dataSync中輸出,則在log4j.properties中添加下行便可:
log4j.additivity.com.ambow.upgrade=false xml