4.4. ロギング設定¶
4.4.1. ログ出力場所¶
標準状態では、MBaaS サーバのログは Tomcat のログファイルである catalina.out ファイルにテキストで書きだされます。
API サーバの場合、ログには以下の情報が出力されます。
- 日付
- 時刻
- ログレベル (INFO, DEBUG など)
- アクセス元IPアドレス
- アプリケーションID (該当する場合)
- ユーザID (該当する場合)
- logger名 (通常は実装クラス名)
- ログメッセージ
コンソールサーバの場合、ログには以下の情報が出力されます。
- 日付
- 時刻
- ログレベル
- アクセス元IPアドレス
- デベロッパメールアドレス (該当する場合)
- logger名
- ログメッセージ
4.4.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.format=[%d{yyyy-MM-dd HH:mm:ss.SSS}] ${HOSTNAME:--} %-5level [%t] %logger{0} - %msg%n
ログレベル¶
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 設定を直接編集してください。
ログフォーマット¶
ログフォーマットは、logbackのフォーマットで設定します。
デフォルトでは、以下のフォーマットが設定されています。
- APIサーバ
%d{yy-MM-dd HH:mm:ss.SSS} %-5level ip=%X{remoteIp} app=%X{appId} usr=%X{userId} %logger{0} - %msg%n
- デベロッパコンソールサーバ
%d{yy-MM-dd HH:mm:ss.SSS} %-5level ip=[%X{remoteIp}] developer=[%X{developerEmail}] %logger{0} - %msg%n
logback.formatでログフォーマットのカスタマイズが可能です。
logback.formatでカスタマイズしたログフォーマットは、APIサーバ、デベロッパコンソールサーバ共通で適用されます。
4.4.3. fluentd の利用¶
標準状態では、ログは各 AP サーバ、デベロッパコンソールサーバ毎に個別に出力されます。
fluentd を使用すると、ログを一箇所に集約したり、出力先を MongoDB にしたりといった ことが可能になります。
fluentd を使用する方法については、 fluentd を利用したロギング を参照してください。