# groonga - オープンソースのカラムストア機能付き全文検索エンジン

- English

# 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-httpd や PGroonga といったマルチプロセスベースのアプリケーションでのフォーマットは以下の通りです。:

    #{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