Sha256: 3063f2e5537a90af8a76081d05a6133c54db9bfa8f2118e9c47c0273baf3b8dd
Contents?: true
Size: 1.12 KB
Versions: 1
Compression:
Stored size: 1.12 KB
Contents
# encoding: utf-8 require "logstash/inputs/base" require "logstash/namespace" require "socket" # for Socket.gethostname # Read events from standard input. # # By default, each event is assumed to be one line. If you # want to join lines, you'll want to use the multiline filter. class LogStash::Inputs::Stdin < LogStash::Inputs::Base config_name "stdin" milestone 3 default :codec, "line" public def register @host = Socket.gethostname end # def register def run(queue) while true begin # Based on some testing, there is no way to interrupt an IO.sysread nor # IO.select call in JRuby. Bummer :( data = $stdin.sysread(16384) @codec.decode(data) do |event| decorate(event) event["host"] = @host queue << event end rescue EOFError, LogStash::ShutdownSignal # stdin closed or a requested shutdown break end end # while true finished end # def run public def teardown @logger.debug("stdin shutting down.") $stdin.close rescue nil finished end # def teardown end # class LogStash::Inputs::Stdin
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
logstash-lib-1.3.2 | lib/logstash/inputs/stdin.rb |