4.3. ロギング設定¶
4.3.1. ログ出力場所¶
標準状態では、MBaaS サーバのログは Tomcat のログファイルである catalina.out ファイルにテキストで書きだされます。
API サーバの場合、ログには以下の情報が出力されます。
- 日付
- 時刻
- ログレベル (INFO, DEBUG など)
- アクセス元IPアドレス
- アプリケーションID (該当する場合)
- ユーザID (該当する場合)
- logger名 (通常は実装クラス名)
- ログメッセージ
コンソールサーバの場合、ログには以下の情報が出力されます。
- 日付
- 時刻
- ログレベル
- アクセス元IPアドレス
- デベロッパメールアドレス (該当する場合)
- logger名
- ログメッセージ
4.3.2. ログ設定¶
ロギングは logback を使用して行われています。 logback の設定は、プロパティファイルで指定することができるようになっています。
プロパティファイルは、以下いずれかの場所に配置することができます。
- /etc/baas/logback.properties
- c:/NEC/BaaS/etc/logback.properties (Windowsの場合)
- ~/.baas/logback.properties
以下に設定例を示します。
# ログレベル
logback.level=INFO
# ログ出力タイプ
logback.types=STDOUT,FILE,FLUENT
# ログ出力ディレクトリ
logback.logdir=/var/log/baas
# fluentd サーバ
logback.fluent.host=localhost
logback.fluent.port=24224
ログレベル¶
logback のログレベルはデフォルトで INFO に設定されています。
logback.level= にレベルを指定します。指定できる値は TRACE, DEBUG, INFO, WARN, ERROR, ALL, OFF のいずれかです。
ログ出力タイプ¶
ログ出力タイプには STDOUT, FILE, FLUENT のいずれか1つ以上をカンマ区切りで指定します。
- STDOUT : 標準出力にログを出力します (Tomcat の場合は catalina.out などに出力)
- FILE : ファイルに出力します。出力先ディレクトリは logback.logdir で指定します。
- FLUENT : fluentd にログを出力します (後述)
ログ出力ディレクトリ¶
logback.types に FILE を指定した場合、logback.logdir で指定したディレクトリに ログファイルが出力されます。ログファイルは、日時で自動的にローテートされます。
logback.logdir を指定しなかった場合のデフォルト値は、Windows では C:/NEC/BaaS/log、 それ以外では /var/log/baas となります。
ローテートパターンを変更したい場合は、logback-common.xml ファイルに記述されている RollingFileAppender 設定を直接編集してください。
4.3.3. ログフォーマット¶
ログフォーマットは、logback の設定である logback.xml ファイルで設定します。
logback.xml は、アプリケーションの WEB-INF/classes/logback.xml に格納されています。
なお、ソースコード上では、logback.xml は以下2箇所にあります。
- ${SRCROOT}/api/src/main/resources/logback.xml (APIサーバ)
- ${SRCROOT}/console/src/main/resources/logback.xml (デベロッパコンソールサーバ)
以下のように pattern 変数にフォーマットを指定します。
<variable name="pattern" value="%d{yy-MM-dd HH:mm:ss.SSS} %-5level ip=%X{remoteIp} app=%X{appId} usr=%X{userId} %logger{0} - %msg%n"/>
4.3.4. fluentd の利用¶
標準状態では、ログは各 AP サーバ、デベロッパコンソールサーバ毎に個別に出力されます。
fluentd を使用すると、ログを一箇所に集約したり、出力先を MongoDB にしたりといった ことが可能になります。
fluentd を使用する方法については、 fluentd を利用したロギング を参照してください。