スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

fluentdにログを流すLog4rのoutputter

#coding: utf-8
require 'log4r/outputter/outputter'
require 'fluent-logger'

module Log4r
class FluentOutputter < Log4r::Outputter
attr_accessor :tag

def initialize(_name, hash={})
super(_name, hash)
@tag = hash['tag'] ? hash['tag'] : 'test'
host = hash['host'] ? hash['host'] : 'localhost'
port = hash['port'] ? hash['port'].to_i : 24224
Fluent::Logger::FluentLogger.open(nil, host: host, port: port)
end

def canonical_log(logevent)
Fluent::Logger.post(@tag, {l: logevent.level, d: logevent.data})
end
end
end

ハッシュを渡したら、出力先がMongoDBの場合、構造化されて保存された。

my_logger.info({abc: 1, efj: "予定表〜①ハンカクだ"})
{ "_id" : ObjectId("4fc950d5b293fb181e000004"), "l" : 2, "d" : { "abc" : 1, "efj" : "予定表〜①ハンカクだ" }, "time" : ISODate("2012-06-01T23:31:32Z") }
スポンサーサイト

COMMENTS

COMMENT FORM

TRACKBACK


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。