logback入門 〜logbackの設定
logbackの設定
https://logback.qos.ch/manual/configuration_ja.html
基本構成
設定ファイルの探索順は以下。
クラスパス上でlogback.groovyというファイルを探します。
見つからなかったら、今度はクラスパス上でlogback-test.xmlを探します。
見つからなかったら、今度はクラスパス上でlogback.xmlを探します。
何も見つからなかったら、自動的にBasicConfiguratorを使って設定。ロギング出力は直接コンソールに出力される。以下と等価。
<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="debug"> <appender-ref ref="STDOUT" /> </root> </configuration>
設定ファイルが変更されたら自動的に再読み込みする。
<configuration scan="true" scanPeriod="30 seconds" > ... </configuration>
設定ファイルの構文
propertiesファイルを指定することも可能。
<configuration> <property file="src/main/java/chapters/configuration/variables1.properties" /> <!-- クラスパス上のリソース指定 --> <property resource="resource1.properties" /> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>${USER_HOME}/myApp.log</file> <encoder> <pattern>%msg%n</pattern> </encoder> </appender> <root level="debug"> <appender-ref ref="FILE" /> </root>
変数のスコープはローカル、コンテキスト、システムの3種類。
xmlのpropertyにscope="context"などで指定。
変数のデフォルト値は"${aName :-golden }"で指定可能。bash記法。
その他にも以下あり。用法を守らないと複雑になるので乱用は厳禁。
・設定ファイル内の条件分岐
・JNDIから変数を取得
・ファイルの取り込み(includeで他XMLを取り込む)