Sha256: f70e78385a014dd6c759fac63801385c58bdc1f415458e05045e46fc5922ab8a
Contents?: true
Size: 1.48 KB
Versions: 1
Compression:
Stored size: 1.48 KB
Contents
#!/usr/bin/env ruby # vim:set fileencoding=utf-8: require 'djb/tai64n' module Djb module Daemontools module Multilog class Logs < Array def load(file) @file = file open(file) do |f| while line = f.gets self << Log.new(line,service) end end self end def service $1 if /\/([^\/]+)\/log\/main\/current/ =~ @file end def to_s join("\n",self) end end class Log def initialize(line,service) @line = line @service = service end def tai64n return $1 if /^(@[a-z0-9]+) / =~ @line end def time Tai64n::to_local(tai64n) end def to_s if /^(@[a-z0-9]+) (.*)/ =~ @line "%s [%s] %s" % [time.strftime("%Y-%m-%d %H:%M:%S"),@service,$2] end end end class Collector def initialize(dir = "/service") @service_dir = dir end def collect all = Logs.new glob_pattern = @service_dir + "/*/log/main/current" Dir.glob(glob_pattern).each do |file| all += Logs.new.load(file) end all.sort do |a,b| a.time <=> b.time end end end end end end =begin # collector = Djb::Daemontools::Multilog::Collector.new("/Users/tumf/service") # puts collector.collect =end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
multilog-collector-0.2.0 | lib/djb/daemontools/multilog/collector.rb |