1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/sample/drb/dlogd.rb
nobu 4b298ad77a Use qualified names
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-30 06:22:30 +00:00

39 lines
634 B
Ruby

=begin
distributed Ruby --- Log server
Copyright (c) 1999-2000 Masatoshi SEKI
=end
require 'drb/drb'
require 'thread'
class Logger
def initialize(fname)
@fname = fname.to_s
@fp = File.open(@fname, "a+")
@queue = Thread::Queue.new
@th = Thread.new { self.flush }
end
def log(str)
@queue.push("#{Time.now}\t" + str.to_s)
end
def flush
begin
while(1)
@fp.puts(@queue.pop)
@fp.flush
end
ensure
@fp.close
end
end
end
if __FILE__ == $0
here = ARGV.shift
DRb.start_service(here, Logger.new('/usr/tmp/dlogd.log'))
puts DRb.uri
DRb.thread.join
end