最近在使用一个开源工具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源码。