Sha256: 39e0686c65213b423700af444e1348976edc5bd3db82f4b2a64275d7da8c3f41
Contents?: true
Size: 1.81 KB
Versions: 1
Compression:
Stored size: 1.81 KB
Contents
# # Fluent # # Copyright (C) 2011 FURUHASHI Sadayuki # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # module Fluent class StdoutExOutput < Output Plugin.register_output('stdout_ex', self) OUTPUT_PROCS = { :json => Proc.new {|record| Yajl.dump(record) }, :hash => Proc.new {|record| record.to_s }, } config_param :output_type, :default => :json do |val| case val.downcase when 'json' :json when 'hash' :hash else raise ConfigError, "stdout output output_type should be 'json' or 'hash'" end end config_param :format, :type => :string, :default => nil def configure(conf) super @output_proc = OUTPUT_PROCS[@output_type] @format_proc = if @format == "ltsv" Proc.new {|time, tag, record| "current_time:#{Time.now.localtime}\ttime:#{Time.at(time).localtime}\ttag:#{tag}\trecord:#{@output_proc.call(record)}\n" } else # [info]: is a fake ;-) Proc.new {|time, tag, record| "#{Time.now.localtime} [info]: #{Time.at(time).localtime} #{tag}: #{@output_proc.call(record)}\n" } end end def emit(tag, es, chain) es.each {|time,record| $log.write @format_proc.call(time, tag, record) } $log.flush chain.next end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fluent-plugin-stdout_ex-0.0.1 | lib/fluent/plugin/out_stdout_ex.rb |