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

- English

# 7.19. Log

Groonga has two log files. They are process log and query log. Process log is for all of groonga executable file works. Query log is just for query processing.

## 7.19.1. Process log

Process log is enabled by default. Log path can be customized by `--log-path` option. Each log has its log level. If a log is smaller than groonga process' log level, it's not logged. Log level can be customized by `-l` or log_level.

### 7.19.1.1. フォーマット

Process log uses the following format:

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

TIME_STAMP

  It's time stamp uses the following format:

      YYYY-MM-DD hh:mm:ss.SSSSSS

  YYYY
    Year with four digits.
  MM
    Month with two digits.
  DD
    Day with two digits.
  hh
    Hour with two digits.
  mm
    Minute with two digits.
  ss
    Second with two digits.
  SSSSSS
    Microsecond with six digits.

  実行例:

      2011-07-05 06:25:18.345734

L

  Log level with a character. Here is a character and log level map.

  E
    Emergency
  A
    Alert
  C
    Critical
  e
    Error
  w
    Warning
  n
    Notification
  i
    Information
  d
    Debug
  -
    Dump

  実行例:

      E

MESSAGE

  Details about the log with free format.

  実行例:

      log opened.

実行例:

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

## 7.19.2. Query log

Query log is disabled by default. It can be enabled by `--query-log-path` option.

### 7.19.2.1. フォーマット

Query log uses the following formats:

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

TIME_STAMP

  It's time stamp uses the following format:

      YYYY-MM-DD hh:mm:ss.SSSSSS

  YYYY
    Year with four digits.
  MM
    Month with two digits.
  DD
    Day with two digits.
  hh
    Hour with two digits.
  mm
    Minute with two digits.
  ss
    Second with two digits.
  SSSSSS
    Microsecond with six digits.

  実行例:

      2011-07-05 06:25:18.345734

ID

  ID of a thread. Groonga process creates threads to process requests concurrently. Each thread outputs some logs for a request. This ID can be used to extract a log sequence by a thread.

  実行例:

      45ea3034

>
  A character that indicates query is started.

:
  A character that indicates query is processing.

<
  A character that indicates query is finished.
MESSAGE

  Details about the log with free format.

  実行例:

      query log opened.

QUERY

  A query to be processed.

  実行例:

      select users --match_columns hobby --query music

ELAPSED_TIME

  Elapsed time in nanoseconds since query is started.

  実行例:

      000000000075770
      (It means 75,770 nanoseconds.)

PROGRESS

  A processed work at the time.

  実行例:

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

RETURN_CODE

  A return code for the query.

  実行例:

      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