fluentdのin_tailプラグインでjsonを読む

in_tailプラグインでformatにjsonを指定すると、jsonをそのまま(文字列にせずに)読める。

このように設定しておいて

<source>
  type tail
  path /tmp/error.log
  pos_file /tmp/error.log.pos
  tag debug.error
  format json
</source>

<match debug.**>
  type stdout
</match>

ログファイルにjsonを書き込んで、

echo '{"hoge":"fuga"}' >>/tmp/error.log

fluentdの標準出力を見ると、オブジェクトのまま表示される。

2012-09-11 20:20:46 +0900 debug.error: {"hoge":"fuga"}

jsonとして不正な文字列を渡すと無視される。