最近在使用一個開源工具FlowDroid使用的日志記錄是slf4j-api與slf4j-simple,於是收集了一下關於slf4j-simple的配置。
在程序中配置
lf4j-simple默認情況下只輸出info以上(包含info)級別的日志。對於自己開發的小項目,很不願意寫一堆配置(log4j,logback)。 於是搜了一下,沒找到用來設置的方法,卻發現可以用運行參數來修改。
(System/setProperty org.slf4j.impl.SimpleLogger/DEFAULT_LOG_LEVEL_KEY, "TRACE")
在啟動參數中配置
當程序是通過web容器啟動時,容器可能會在我們的代碼執行之前初始化slf4j-simple,那么設置什么都沒有用了(這點折磨了我很長時間)。此時我們可以在啟動參數里(如果你不想見到繁瑣的配置文件的話)。
java -Dorg.slf4j.simpleLogger.defaultLogLevel=trace xxxx
配置文件
當然也可以通過配置文件來設置。只需要將配置寫道simplelogger.properties,並放到classpath下即可。
其他可配置項
DEFAULT_LOG_LEVEL_KEY = org.slf4j.simpleLogger.defaultLogLevel
SHOW_DATE_TIME_KEY = org.slf4j.simpleLogger.showDateTime
DATE_TIME_FORMAT_KEY = org.slf4j.simpleLogger.dateTimeFormat
SHOW_THREAD_NAME_KEY = org.slf4j.simpleLogger.showThreadName
SHOW_LOG_NAME_KEY = org.slf4j.simpleLogger.showLogName
SHOW_SHORT_LOG_NAME_KEY = org.slf4j.simpleLogger.showShortLogName
LOG_FILE_KEY = org.slf4j.simpleLogger.logFile
LEVEL_IN_BRACKETS_KEY = org.slf4j.simpleLogger.levelInBrackets
WARN_LEVEL_STRING_KEY = org.slf4j.simpleLogger.warnLevelString
需要說的是logFile並不需要指定一個文件,例如logFile的默認值是"System.err"。當命令行不支持錯誤流時,我們可以把logFile設置成"System.out"。 如果設置某個值沒有效果,可以跟一下org.slf4j.impl.SimpleLogger源碼。
