7.23. ログ

Groongaには2つのログファイルがあります。プロセスログとクエリーログです。プロセスログは groonga 実行ファイル の動作すべてに関することのログです。クエリーログはクエリー処理に関することだけのログです。

7.23.1. プロセスログ

プロセスログはデフォルトで有効になっています。プロセスログは groonga --log-path オプションでカスタマイズできます。各ログにはログレベルがあります。ログのレベルがGroongaプロセスのログレベルより小さいときはそのログは記録されません。ログレベルは groonga -l または log_level でカスタマイズできます。

7.23.1.1. フォーマット

プロセスログのフォーマットは以下の通りです。:

#{TIME_STAMP}|#{L}| #{MESSAGE}

groonga-httpdPGroonga といったマルチプロセスベースのアプリケーションでのフォーマットは以下の通りです。:

#{TIME_STAMP}|#{L}|#{PID}: #{MESSAGE}
TIME_STAMP

タイムスタンプのフォーマットは次の通りです。:

YYYY-MM-DD hh:mm:ss.SSSSSS
YYYY
年(4桁)
MM
月(2桁)
DD
日(2桁)
hh
時(2桁)
mm
分(2桁)
ss
秒(2桁)
SSSSSS
マイクロ秒(6桁)

実行例:

2011-07-05 06:25:18.345734
L

ログレベル(1文字)。文字がどのログレベルに対応するかは次の通りです。

E
緊急
A
アラート
C
危機的
e
エラー
w
警告
n
通知
i
情報
d
デバッグ
-
ダンプ

実行例:

E
PID

プロセスID。

実行例:

1129
MESSAGE

自由形式でのログの詳細。

実行例:

log opened.

実行例:

2011-07-05 08:35:09.276421|n| grn_init
2011-07-05 08:35:09.276553|n| RLIMIT_NOFILE(4096,4096)

実行例(PIDを含む場合):

2011-07-05 08:35:09.276421|n|1129: grn_init
2011-07-05 08:35:09.276553|n|1129: RLIMIT_NOFILE(4096,4096)

7.23.2. クエリーログ

クエリーログはデフォルトでは無効になっています。 groonga --query-log-path オプションで有効にできます。

7.23.2.1. フォーマット

クエリーログのフォーマットは次の通りです。:

#{TIME_STAMP}|#{MESSAGE}
#{TIME_STAMP}|#{ID}|>#{QUERY}
#{TIME_STAMP}|#{ID}|:#{ELAPSED_TIME} #{PROGRESS}
#{TIME_STAMP}|#{ID}|<#{ELAPSED_TIME} #{RETURN_CODE}
TIME_STAMP

タイムスタンプのフォーマットは次の通りです。:

YYYY-MM-DD hh:mm:ss.SSSSSS
YYYY
年(4桁)
MM
月(2桁)
DD
日(2桁)
hh
時(2桁)
mm
分(2桁)
ss
秒(2桁)
SSSSSS
マイクロ秒(6桁)

実行例:

2011-07-05 06:25:18.345734
ID

スレッドのID。Groongaプロセスは並列に複数のリクエストを処理するためにスレッドを作ります。各スレッドは1つのリクエストにつき複数のログを出力します。このIDを使うとスレッド毎の一連のログを抽出できます。

実行例:

45ea3034
>
クエリーが始まったことを示す文字。
:
クエリーが処理中であることを示す文字。
<
クエリーが完了したことを示す文字。
MESSAGE

自由形式でのログの詳細。

実行例:

query log opened.
QUERY

処理対象のクエリー。

実行例:

select users --match_columns hobby --query music
ELAPSED_TIME

クエリーの処理を開始してからの時間。単位はマイクロ秒。

実行例:

000000000075770
(It means 75,770 nanoseconds.)
PROGRESS

このときに処理した内容。

実行例:

select(313401)
(It means that 'select' is processed and 313,401 records are remained.)
RETURN_CODE

クエリーのリターンコード。

実行例:

rc=0
(It means return code is 0. 0 means GRN_SUCCESS.)

実行例:

2011-07-05 06:25:19.458756|45ea3034|>select Properties --limit 0
2011-07-05 06:25:19.458829|45ea3034|:000000000072779 select(19)
2011-07-05 06:25:19.458856|45ea3034|:000000000099998 output(0)
2011-07-05 06:25:19.458875|45ea3034|<000000000119062 rc=0
2011-07-05 06:25:19.458986|45ea3034|>quit