logtrend 0.1.20101204135642 → 0.2.20101204144415

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,19 +5,18 @@ require 'rrd'
5
5
  require 'logger'
6
6
 
7
7
  class LogTrend
8
- attr_accessor :trends
9
8
  attr_accessor :graphs
10
9
 
11
10
  def initialize
12
- trends = {}
13
- graphs = {}
11
+ @trends = {}
12
+ @graphs = {}
14
13
  @logger = Logger.new(STDERR)
15
14
  @logger.level = ($DEBUG and Logger::DEBUG or Logger::WARN)
16
15
  end
17
16
 
18
17
  def reset_counters
19
18
  counters = {}
20
- trends.keys.each do |k|
19
+ @trends.keys.each do |k|
21
20
  counters[k] = 0
22
21
  end
23
22
  counters
@@ -58,9 +57,10 @@ class LogTrend
58
57
  end
59
58
 
60
59
  EventMachine::file_tail(logfile) do |filetail, line|
61
- trends.each do |name, regex|
62
- counters[name] += 1 if line.match(regex)
60
+ @trends.each do |name, block|
61
+ counters[name] += 1 if block.call(line)
63
62
  end
63
+ @logger.debug counters.inspect
64
64
  end
65
65
  end
66
66
  rescue Interrupt
@@ -68,6 +68,11 @@ class LogTrend
68
68
  end
69
69
  end
70
70
 
71
+ def add_trend(name, &block)
72
+ throw "D'oh! No block." unless block_given?
73
+ @trends[name] = block
74
+ end
75
+
71
76
  def self.start(logfile, rrd_dir, graphs_dir, &block)
72
77
  l = LogTrend.new
73
78
  yield l if block
@@ -9,11 +9,10 @@ Dir.mkdir('/tmp/rrd') if !File.exists?('/tmp/rrd')
9
9
  Dir.mkdir('/tmp/graphs') if !File.exists?('/tmp/graphs')
10
10
 
11
11
  LogTrend.start('test.log', "/tmp/rrd", "/tmp/graphs") do |l|
12
- l.trends = {
13
- :total => /.*/,
14
- :fbod => /fogbugz.com/,
15
- :kod => /kilnhg.com/
16
- }
12
+
13
+ l.add_trend(:total) {|line| line.match /.*/}
14
+ l.add_trend(:fbod) {|line| line.match /fogbugz.com/}
15
+ l.add_trend(:kod) {|line| line.match /kilnhg.com/}
17
16
 
18
17
  l.graphs = {
19
18
  "requests_per_minute" => {
@@ -0,0 +1,19 @@
1
+ test
2
+ test
3
+ test
4
+ test
5
+ test
6
+ test
7
+ test
8
+ test
9
+ test
10
+ test
11
+ test
12
+ test
13
+ test
14
+ test
15
+ fogbugz.com
16
+ fogbugz.com
17
+ fogbugz.com
18
+ fogbugz.com
19
+ kilnhg.com
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logtrend
3
3
  version: !ruby/object:Gem::Version
4
- hash: 40202408271279
4
+ hash: 40202408288809
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 1
9
- - 20101204135642
10
- version: 0.1.20101204135642
8
+ - 2
9
+ - 20101204144415
10
+ version: 0.2.20101204144415
11
11
  platform: ruby
12
12
  authors:
13
13
  - Michael Gorsuch
@@ -71,6 +71,7 @@ extra_rdoc_files: []
71
71
  files:
72
72
  - lib/logtrend.rb
73
73
  - samples/example.rb
74
+ - samples/test.log
74
75
  has_rdoc: true
75
76
  homepage: https://github.com/gorsuch/logtrend
76
77
  licenses: []