スポンサーサイト

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

log4r-fluentのgem化

以前作ったlog4r用のfluentのoutputterをgemにしました。
gem install log4r-fluent
でインストールできます。
ソースはgithubにおきました。
手順を以下に記述します。
bundle gem log4r-fluent -V
cd log4r-fluent
git add .
git commit
git remote add origin git@github.com:aoyagikouhei/log4r-fluent.git
git push -u origin master
vi log4r-fluent.gemspec

gem.description = %q{Log4R Outputter for fluent}
gem.summary = %q{Log4R Outputter for fluent}
gem.add_dependency(%q)
gem.add_dependency(%q)
vi .gitignore

vendor/bundler
vi Gemfile

gem 'rake'
gem 'rspec'
gem 'yard'
gem 'redcarpet'
mkdir spec
vi spec/spec_helper.rb

require 'bundler/setup'
require 'log4r-fluent'

RSpec.configure do |config|
# some (optional) config here
end
vi spec/log4r-fluent_spec.rb

require 'spec_helper'
describe Log4r::Fluent do
it "initialize" do
obj = Log4r::FluentOutputter.new("name")
obj.tag.should == "test"
end

it "initialize with tag" do
obj = Log4r::FluentOutputter.new("name", {tag: 'hi'})
obj.tag.should == "hi"
end
end
vi .rspec

--color
-fs
vi Rakefile

require 'rspec/core/rake_task'
require 'yard'

RSpec::Core::RakeTask.new(:spec)
task default: :spec

YARD::Rake::YardocTask.new(:doc)
bundle exec rake spec
mkdir lib/log4r
vi lib/log4r/fluent-outputter.rb

#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
git add .
git commit
git push
bundle exec rake release
スポンサーサイト

COMMENTS

COMMENT FORM

TRACKBACK


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

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