讓我們用日誌的默認代碼開始兩個類之間:阿帕奇常用的日誌記錄
實現:
A類:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.cc.B;
public class A {
public static Log logger = LogFactory.getLog(A.class);
public static void main(String[] args) {
logger.info("Entering application.");
B b = new B();
b.doIt();
logger.info("Exiting application.");
}
}
B類:
package com.cc;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class B {
public static Log log = LogFactory.getLog(B.class);
public void doIt() {
log.debug("Did it");
}
}
執行:
16 mars 2012 09:31:35 com.cc.A main
INFO: Entering application.
16 mars 2012 09:31:35 com.cc.B doIt
INFO: Did it
16 mars 2012 09:31:35 com.cc.A main
INFO: Exiting application.
在B類
,取代public static Log log = LogFactory.getLog(B.class);
到public static Log log = LogFactory.getLog(A.class);
具有日誌應用程序的任何影響。
我該如何登錄到A類記錄器?
發佈您的log4j。屬性,順便說一句:你是什麼意思只登錄到類記錄器?知道你的日誌消息來自哪裏是有道理的 - 你想達到什麼目的? – quaylar 2012-03-16 08:55:22
這是我想要的: '16 mars 2012 09:31:35 com.cc.A main 信息:輸入應用程序。 16 mars 2012 09:31:35 ** com.cc.A ** doIt 信息:是否 16 mars 2012 09:31:35 com.cc.A main INFO:退出應用程序.' – kaissun 2012-03-16 09:00:40
因爲有也是一個方法名稱,我認爲com.cc.B是自動發現的,並且是調用記錄器的方法的一部分地址。 'getLog'的類參數是AFAIK的便利和慣例,所以你可以很容易地通過包來控制日誌級別。 (在包com.example.foo中記錄DEBUG,但包com.example.bar中只包含INFO) – user1252434 2012-03-16 09:39:47