- moved thread name setting into it's own lib/method

This commit is contained in:
Jordan Sissel 2011-03-23 18:14:15 -07:00
parent 7764b276c0
commit d2f0d5739e
3 changed files with 23 additions and 13 deletions

View file

@ -1,19 +1,18 @@
#TODO(sissel): Maybe this will help jruby jar issues? #TODO(sissel): Maybe this will help jruby jar issues?
#$: << File.join(File.dirname(__FILE__), "../" #$: << File.join(File.dirname(__FILE__), "../"
require "java"
require "logstash/config/file"
require "logstash/filters" require "logstash/filters"
require "logstash/inputs" require "logstash/inputs"
require "logstash/logging" require "logstash/logging"
require "logstash/multiqueue" require "logstash/multiqueue"
require "logstash/namespace" require "logstash/namespace"
require "logstash/outputs" require "logstash/outputs"
require "logstash/config/file" require "logstash/util"
require "optparse" require "optparse"
require "java"
require "uri" require "uri"
JThread = java.lang.Thread
# TODO(sissel): only enable this if we are in debug mode. # TODO(sissel): only enable this if we are in debug mode.
# JRuby.objectspace=true # JRuby.objectspace=true
@ -201,19 +200,22 @@ class LogStash::Agent
STDERR.reopen(devnull) STDERR.reopen(devnull)
end end
if @verbose > 2 if @verbose >= 3 # Uber debugging.
@logger.level = Logger::DEBUG @logger.level = Logger::DEBUG
elsif @verbose == 1 $DEBUG = true
elsif @verbose == 2 # logstash debug logs
@logger.level = Logger::DEBUG
elsif @verbose == 1 # logstash info logs
@logger.level = Logger::INFO @logger.level = Logger::INFO
else else # Default log level
# Default log level
@logger.level = Logger::WARN @logger.level = Logger::WARN
end end
end # def configure end # def configure
public public
def run def run
JThread.currentThread().setName(self.class.name) LogStash::Util::set_thread_name(self.class.name)
ok = parse_options ok = parse_options
if !ok if !ok
raise "Option parsing failed. See error log." raise "Option parsing failed. See error log."
@ -275,7 +277,7 @@ class LogStash::Agent
1.times do |n| 1.times do |n|
@logger.info("Starting filter worker thread #{n}") @logger.info("Starting filter worker thread #{n}")
@threads["filter|worker|#{n}"] = Thread.new do @threads["filter|worker|#{n}"] = Thread.new do
JThread.currentThread().setName("filter|worker|#{n}") LogStash::Util::set_thread_name("filter|worker|#{n}")
@filters.each do |filter| @filters.each do |filter|
filter.logger = @logger filter.logger = @logger
filter.register filter.register
@ -308,7 +310,7 @@ class LogStash::Agent
@threads["outputs/#{output.to_s}"] = Thread.new(queue) do |queue| @threads["outputs/#{output.to_s}"] = Thread.new(queue) do |queue|
output.register output.register
begin begin
JThread.currentThread().setName("output/#{output.to_s}") LogStash::Util::set_thread_name("output/#{output.to_s}")
output.logger = @logger output.logger = @logger
while event = queue.pop do while event = queue.pop do

View file

@ -1,6 +1,7 @@
require "filewatch/tail" # rubygem 'filewatch' require "filewatch/tail" # rubygem 'filewatch'
require "logstash/namespace" require "logstash/namespace"
require "logstash/logging" require "logstash/logging"
require "logstash/util"
require "set" require "set"
require "socket" # for Socket.gethostname require "socket" # for Socket.gethostname
@ -17,7 +18,7 @@ class LogStash::File::Manager
@file_threads = {} @file_threads = {}
@main_thread = nil @main_thread = nil
@output_queue = nil @output_queue = nil
@logger = Logstash::Logger.new(STDOUT) @logger = LogStash::Logger.new(STDOUT)
@hostname = Socket.gethostname @hostname = Socket.gethostname
end # def initialize end # def initialize
@ -58,7 +59,7 @@ class LogStash::File::Manager
private private
def watcher def watcher
JThread.currentThread().setName(self.class.name) LogStash::Util::set_thread_name(self.class.name)
@buffers = Hash.new { |h,k| h[k] = BufferedTokenizer.new } @buffers = Hash.new { |h,k| h[k] = BufferedTokenizer.new }
begin begin
@tail.subscribe do |path, data| @tail.subscribe do |path, data|

7
lib/logstash/util.rb Normal file
View file

@ -0,0 +1,7 @@
require "logstash/namespace"
module LogStash::Util
def self.set_thread_name(name)
java.lang.Thread.currentThread.setName(name)
end # def set_thread_name
end # module LogStash::Util