slf4j-simpleの設定方法

api 1.7とslf4j-simpleを実装しています。ただ、この組み合わせでログレベルを設定する方法がわかりません。

誰か助けてくれませんか?

ソリューション

それは、システムのプロパティを介したものです。

-Dorg.slf4j.simpleLogger.defaultLogLevel=debug

またはクラスパス上の simplelogger.properties ファイルを使用します。

詳細は http://www.slf4j.org/api/org/slf4j/impl/SimpleLogger.html を参照してください。

解説 (4)

これはサンプルのsimplelogger.propertiesで、クラスパスに置くことができます(使いたいプロパティをアンコメントしてください)。

# SLF4J's SimpleLogger configuration file
# Simple implementation of Logger that sends all enabled log messages, for all defined loggers, to System.err.

# Default logging detail level for all instances of SimpleLogger.
# Must be one of ("trace", "debug", "info", "warn", or "error").
# If not specified, defaults to "info".
#org.slf4j.simpleLogger.defaultLogLevel=info

# Logging detail level for a SimpleLogger instance named "xxxxx".
# Must be one of ("trace", "debug", "info", "warn", or "error").
# If not specified, the default logging detail level is used.
#org.slf4j.simpleLogger.log.xxxxx=

# Set to true if you want the current date and time to be included in output messages.
# Default is false, and will output the number of milliseconds elapsed since startup.
#org.slf4j.simpleLogger.showDateTime=false

# The date and time format to be used in the output messages.
# The pattern describing the date and time format is the same that is used in java.text.SimpleDateFormat.
# If the format is not specified or is invalid, the default format is used.
# The default format is yyyy-MM-dd HH:mm:ss:SSS Z.
#org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z

# Set to true if you want to output the current thread name.
# Defaults to true.
#org.slf4j.simpleLogger.showThreadName=true

# Set to true if you want the Logger instance name to be included in output messages.
# Defaults to true.
#org.slf4j.simpleLogger.showLogName=true

# Set to true if you want the last component of the name to be included in output messages.
# Defaults to false.
#org.slf4j.simpleLogger.showShortLogName=false
解説 (2)

システムプロパティを設定することで、プログラムで変更することができます。

public class App {

    public static void main(String[] args) {

        System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "TRACE");

        final org.slf4j.Logger log = LoggerFactory.getLogger(App.class);

        log.trace("trace");
        log.debug("debug");
        log.info("info");
        log.warn("warning");
        log.error("error");

    }
}

ログレベルは ERROR > WARN > INFO > DEBUG > TRACE です。

一度ロガーを作成すると、ログレベルは変更できないことに注意してください。ログレベルを動的に変更する必要がある場合は、SLF4Jでlog4jを使用するとよいでしょう。

解説 (6)