天天看點

調試依賴commons-logging日志的源碼時,輸出debug日志,springmvc,spring等等

commons-logging與slf4j一樣是統一接口,但是用的多,spring-core依賴commons-logging,導緻,spring的很多東西都是commons-logging,調試檢視源碼,輸出debug,trace日志非常重要

添加下面兩個檔案到編譯的classes根目錄或resource目錄等等

//commons-logging.properties

org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
           
//simplelog.properties

org.apache.commons.logging.simplelog.defaultlog=debug
           

運作項目即可看到許多debug日志

看org.apache.commons.logging.impl.SimpleLog源碼,就知道了,所有級别配置

public SimpleLog(String name) {
        this.logName = name;
        this.setLevel();
        String lvl = getStringProperty("org.apache.commons.logging.simplelog.log." + this.logName);

        for(int i = String.valueOf(name).lastIndexOf("."); null == lvl && i > -; i = String.valueOf(name).lastIndexOf(".")) {
            name = name.substring(, i);
            lvl = getStringProperty("org.apache.commons.logging.simplelog.log." + name);
        }

        if (null == lvl) {
            lvl = getStringProperty("org.apache.commons.logging.simplelog.defaultlog");
        }

        if ("all".equalsIgnoreCase(lvl)) {
            this.setLevel();
        } else if ("trace".equalsIgnoreCase(lvl)) {
            this.setLevel();
        } else if ("debug".equalsIgnoreCase(lvl)) {
            this.setLevel();
        } else if ("info".equalsIgnoreCase(lvl)) {
            this.setLevel();
        } else if ("warn".equalsIgnoreCase(lvl)) {
            this.setLevel();
        } else if ("error".equalsIgnoreCase(lvl)) {
            this.setLevel();
        } else if ("fatal".equalsIgnoreCase(lvl)) {
            this.setLevel();
        } else if ("off".equalsIgnoreCase(lvl)) {
            this.setLevel();
        }

    }
           

SimpleLog配置說明,從上面的源碼可以看出來

配置預設級别,所有級别   all,trace,debug,info,warn,error,fatal,off
org.apache.commons.logging.simplelog.defaultlog=debug

配置包(com.dddd.test)的log級别
org.apache.commons.logging.simplelog.log.com.dddd.test=error