Class: Djb::Daemontools::Multilog::Collector

Inherits:
Object
  • Object
show all
Defined in:
lib/djb/daemontools/multilog/collector.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dir = "/service") ⇒ Collector

Returns a new instance of Collector.



12
13
14
15
# File 'lib/djb/daemontools/multilog/collector.rb', line 12

def initialize(dir = "/service")
  @lines = 100
  @service_dir = dir
end

Instance Attribute Details

#linesObject

Returns the value of attribute lines.



8
9
10
# File 'lib/djb/daemontools/multilog/collector.rb', line 8

def lines
  @lines
end

#service_dirObject Also known as: directory

Returns the value of attribute service_dir.



8
9
10
# File 'lib/djb/daemontools/multilog/collector.rb', line 8

def service_dir
  @service_dir
end

Instance Method Details

#collectObject



29
30
31
32
33
34
35
36
# File 'lib/djb/daemontools/multilog/collector.rb', line 29

def collect
  all = logs.sort! do |a,b|
    a.time <=> b.time
  end
  # all[all.length - @lines..-1]
  lines = [@lines,all.length].min
  all[-lines..-1]
end

#glob_patternObject



17
18
19
# File 'lib/djb/daemontools/multilog/collector.rb', line 17

def glob_pattern
  @service_dir + "/*/log/main/current"
end

#logsObject



21
22
23
24
25
26
27
# File 'lib/djb/daemontools/multilog/collector.rb', line 21

def logs
  all = Logs.new
  Dir.glob(glob_pattern).each do |file| 
    all += Logs.new.load(file,@lines)
  end
  all
end