YUKI Hiroshi
null+****@clear*****
Thu Jul 17 17:20:15 JST 2014
YUKI Hiroshi 2014-07-17 17:20:15 +0900 (Thu, 17 Jul 2014) New Revision: a78d2ec2c29b12b4bbead6541371ddabc1cf2ed4 https://github.com/droonga/droonga-engine/commit/a78d2ec2c29b12b4bbead6541371ddabc1cf2ed4 Message: Output log of serf event handler to a file Modified files: lib/droonga/command/serf_event_handler.rb Modified: lib/droonga/command/serf_event_handler.rb (+29 -17) =================================================================== --- lib/droonga/command/serf_event_handler.rb 2014-07-17 16:09:06 +0900 (54ac5d0) +++ lib/droonga/command/serf_event_handler.rb 2014-07-17 17:20:15 +0900 (e42a980) @@ -20,10 +20,13 @@ require "droonga/serf" require "droonga/catalog_generator" require "droonga/data_absorber" require "droonga/safe_file_writer" +require "droonga/logger" module Droonga module Command class SerfEventHandler + include Loggable + class << self def run new.run @@ -34,6 +37,11 @@ module Droonga @serf = ENV["SERF"] || Serf.path @serf_rpc_address = ENV["SERF_RPC_ADDRESS"] || "127.0.0.1:7373" @serf_name = ENV["SERF_SELF_NAME"] + + log_file = File.open(Path.base + "serf-event-handler.log", "a") + Logger.default_output = log_file + $stdout.reopen(log_file) + $stderr.reopen(log_file) end def run @@ -53,11 +61,11 @@ module Droonga when "user" @event_sub_name = ENV["SERF_USER_EVENT"] @payload = JSON.parse($stdin.gets) - puts "event sub name = #{@event_sub_name}" + logger.info("event sub name = #{@event_sub_name}") when "query" @event_sub_name = ENV["SERF_QUERY_NAME"] @payload = JSON.parse($stdin.gets) - puts "event sub name = #{@event_sub_name}" + logger.info("event sub name = #{@event_sub_name}") end end @@ -102,7 +110,7 @@ module Droonga def join type = @payload["type"] - puts "type = #{type}" + logger.info("type = #{type}") case type when "replica" join_as_replica @@ -113,7 +121,7 @@ module Droonga source_node = @payload["source"] return unless source_node - puts "source_node = #{source_node}" + logger.info("source_node = #{source_node}") source_host = source_node.split(":").first @@ -131,12 +139,12 @@ module Droonga port = dataset.replicas.port other_hosts = dataset.replicas.hosts - puts "dataset = #{dataset_name}" - puts "port = #{port}" - puts "tag = #{tag}" + logger.info("dataset = #{dataset_name}") + logger.info("port = #{port}") + logger.info("tag = #{tag}") if @payload["copy"] - puts "starting to copy data from #{source_host}" + logger.info("starting to copy data from #{source_host}") modify_catalog do |modifier| modifier.datasets[dataset_name].replicas.hosts = [host] @@ -151,7 +159,7 @@ module Droonga sleep(1) end - puts "joining to the cluster: update myself" + logger.info("joining to the cluster: update myself") modify_catalog do |modifier| modifier.datasets[dataset_name].replicas.hosts += other_hosts @@ -159,7 +167,7 @@ module Droonga end sleep(1) # wait for restart - puts "joining to the cluster: update others" + logger.info("joining to the cluster: update others") source_node = "#{source}:#{port}/#{tag}" Serf.send_query(source_node, "add_replicas", @@ -222,7 +230,7 @@ module Droonga hosts = given_hosts return unless hosts - puts "new replicas: #{hosts.join(",")}" + logger.info("new replicas: #{hosts.join(",")}") modify_catalog do |modifier| modifier.datasets[dataset].replicas.hosts = hosts @@ -239,7 +247,7 @@ module Droonga hosts -= [host] return if hosts.empty? - puts "adding replicas: #{hosts.join(",")}" + logger.info("adding replicas: #{hosts.join(",")}") modify_catalog do |modifier| modifier.datasets[dataset].replicas.hosts += hosts @@ -254,7 +262,7 @@ module Droonga hosts = given_hosts return unless hosts - puts "removing replicas: #{hosts.join(",")}" + logger.info("removing replicas: #{hosts.join(",")}") modify_catalog do |modifier| modifier.datasets[dataset].replicas.hosts -= hosts @@ -277,7 +285,7 @@ module Droonga source = @payload["source"] return unless source - puts "start to absorb data from #{source}" + logger.info("start to absorb data from #{source}") dataset_name = @payload["dataset"] port = @payload["port"] @@ -296,9 +304,9 @@ module Droonga tag = dataset.replicas.tag end - puts "dataset = #{dataset_name}" - puts "port = #{port}" - puts "tag = #{tag}" + logger.info("dataset = #{dataset_name}") + logger.info("port = #{port}") + logger.info("tag = #{tag}") DataAbsorber.absorb(:dataset => dataset_name, :source_host => source, @@ -333,6 +341,10 @@ module Droonga status[key] = value SafeFileWriter.write(Serf.status_file, JSON.pretty_generate(status)) end + + def log_tag + "serf_event_handler" + end end end end -------------- next part -------------- HTML����������������������������...Download