Logger來自log4j自己的包。如果用Logger.getLogger,需要一個log4j的jar包,用此方式你只能依靠log4j:privatestaticLoggerlogger=Logger.getLogger(“paymentLog”);LogFactory來自common-logging包。如果用LogFactory.getLog,你可以用任何實現了通用日誌介面的日誌記錄器替換log4j,而程式不受影響。apache的common-logging包是通用日誌介面,透過這個中間層,你可以隨便指定到底用哪個日誌系統。增加系統的靈活性。若log4j它不存在,commons-logging會另行選擇其它的日誌實現類。這樣保證了程式中不一定要使用log4j這個日誌檔案了privatestaticLoglogger=LogFactory.getLog(“payMonitor”);增強靈活性的理由:
1)首先在classpath下尋找自己的配置檔案commons-logging.properties,如果找到,則使用其中定義的Log實現類;
2)如果找不到commons-logging.properties檔案,則在查詢是否已定義系統環境變數org.apache.commons.logging.Log,找到則使用其定義的Log實現類;
3)否則,檢視classpath中是否有Log4j的包,如果發現,則自動使用Log4j作為日誌實現類;
4)否則,使用JDK自身的日誌實現類(JDK1.4以後才有日誌實現類);
5)否則,使用commons-logging自己提供的一個簡單的日誌實現類SimpleLog;為了簡化配置commons-logging,一般不使用commons-logging的配置檔案,也不設定與commons-logging相關的系統環境變數,而只需將Log4j的Jar包放置到classpash中就可以了。這樣就很簡單地完成了commons-logging與Log4j的融合。根據不同的性質,日誌資訊通常被分成不同的級別,從低到高依次是:“除錯(DEBUG)”“資訊(INFO)”“警告(WARN)”“錯誤(ERROR)”“致命錯誤(FATAL)”。
Logger來自log4j自己的包。如果用Logger.getLogger,需要一個log4j的jar包,用此方式你只能依靠log4j:privatestaticLoggerlogger=Logger.getLogger(“paymentLog”);LogFactory來自common-logging包。如果用LogFactory.getLog,你可以用任何實現了通用日誌介面的日誌記錄器替換log4j,而程式不受影響。apache的common-logging包是通用日誌介面,透過這個中間層,你可以隨便指定到底用哪個日誌系統。增加系統的靈活性。若log4j它不存在,commons-logging會另行選擇其它的日誌實現類。這樣保證了程式中不一定要使用log4j這個日誌檔案了privatestaticLoglogger=LogFactory.getLog(“payMonitor”);增強靈活性的理由:
1)首先在classpath下尋找自己的配置檔案commons-logging.properties,如果找到,則使用其中定義的Log實現類;
2)如果找不到commons-logging.properties檔案,則在查詢是否已定義系統環境變數org.apache.commons.logging.Log,找到則使用其定義的Log實現類;
3)否則,檢視classpath中是否有Log4j的包,如果發現,則自動使用Log4j作為日誌實現類;
4)否則,使用JDK自身的日誌實現類(JDK1.4以後才有日誌實現類);
5)否則,使用commons-logging自己提供的一個簡單的日誌實現類SimpleLog;為了簡化配置commons-logging,一般不使用commons-logging的配置檔案,也不設定與commons-logging相關的系統環境變數,而只需將Log4j的Jar包放置到classpash中就可以了。這樣就很簡單地完成了commons-logging與Log4j的融合。根據不同的性質,日誌資訊通常被分成不同的級別,從低到高依次是:“除錯(DEBUG)”“資訊(INFO)”“警告(WARN)”“錯誤(ERROR)”“致命錯誤(FATAL)”。