logworm_amqp 0.9.1 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ v0.9.2
2
+ Adds support for attaching extra data to log entries (via log_with_request). The main purpose is to allow users to add their own
3
+ data to the automatically-generated web_log log.
4
+ Renames (or, rather, aliases for now) lw_log to log_in
5
+
1
6
  v0.9.1
2
7
  Explicitly state dependency on minion 0.1.15
3
8
  v0.9.0
data/Manifest CHANGED
@@ -13,4 +13,3 @@ lib/cmd/compute.rb
13
13
  lib/cmd/tail.rb
14
14
  lib/logworm_amqp.rb
15
15
  lib/logworm_utils.rb
16
- logworm_amqp.gemspec
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'echoe'
2
- Echoe.new('logworm_amqp', '0.9.1') do |p|
2
+ Echoe.new('logworm_amqp', '0.9.2') do |p|
3
3
  p.description = "logworm - logging service"
4
4
  p.url = "http://www.logworm.com"
5
5
  p.author = "Pomelo, LLC"
data/lib/client/logger.rb CHANGED
@@ -5,6 +5,7 @@ module Logworm
5
5
 
6
6
  class Logger
7
7
  $lr_queue = []
8
+ $attaches = {}
8
9
 
9
10
  ###
10
11
  # Use connection to the backend servers specified in environment variable or config file
@@ -46,11 +47,7 @@ module Logworm
46
47
  return unless values.is_a? Hash
47
48
 
48
49
  # Turn keys into symbols, delete empty ones, rename conflicting ones
49
- kvalues = values.delete_if {|k,v| k.to_s == ""}.map {|k,v| [k.to_sym, v]}
50
- kvalues = Hash[*kvalues.flatten]
51
- [:_ts, :_ts_utc, :_request_id].each do |k|
52
- kvalues["orig_#{k}".to_sym] = kvalues[k] if kvalues.has_key? k
53
- end
50
+ kvalues = cleanup(values)
54
51
 
55
52
  # Add information
56
53
  ts = Time.now.utc
@@ -61,6 +58,18 @@ module Logworm
61
58
  # Enqueue
62
59
  $lr_queue << [table, kvalues]
63
60
  end
61
+
62
+ ###
63
+ # Allows to add fields to ALL log entries that go to a particular table.
64
+ # Can be used, for example, to add user-level and app-specific data to the :web_log log
65
+ # Notice that it overwrites previously attached fields. For example
66
+ # attach_to_log(:xx, {:a = 1})
67
+ # attach_to_log(:xx, {:a = 2})
68
+ # will end up attaching just :a => 2 to every :xx log
69
+ ###
70
+ def self.attach_to_log(table, values = {})
71
+ $attaches[table] = ($attaches[table] ? $attaches[table].merge(values) : values)
72
+ end
64
73
 
65
74
  ###
66
75
  # Sends the entries to the server, if configured
@@ -82,6 +91,12 @@ module Logworm
82
91
  return [0,0]
83
92
  end
84
93
 
94
+ # Apply a-posteriori attachments
95
+ # It merges, and so that attachment may overwrite
96
+ $lr_queue.each do |le|
97
+ le[1].merge!($attaches[le[0]]) if $attaches[le[0]]
98
+ end
99
+
85
100
  startTime = Time.now
86
101
  $lw_server.batch_log($lr_queue.to_json)
87
102
  $lr_queue = []
@@ -89,5 +104,16 @@ module Logworm
89
104
 
90
105
  [to_send, (endTime - startTime)]
91
106
  end
107
+
108
+ private
109
+ # Turn keys into symbols, delete empty ones, rename conflicting ones
110
+ def self.cleanup(values)
111
+ kvalues = {}
112
+ values.each {|k,v| kvalues[k.to_sym] = v unless k.to_s == ""}
113
+ [:_ts, :_ts_utc, :_request_id].each do |k|
114
+ kvalues["orig_#{k}".to_sym] = kvalues[k] if kvalues.has_key? k
115
+ end
116
+ kvalues
117
+ end
92
118
  end
93
119
  end
data/lib/logworm_amqp.rb CHANGED
@@ -9,6 +9,12 @@ require File.dirname(__FILE__) + '/client/rails'
9
9
  def lw_log (logname, values)
10
10
  Logworm::Logger.log(logname, values)
11
11
  end
12
+ alias :log_in :lw_log
13
+
14
+ def lw_with_log(values)
15
+ Logworm::Logger.attach_to_log(:web_log, values)
16
+ end
17
+ alias :log_with_request :lw_with_log
12
18
 
13
19
  ###
14
20
  # Perform a query against the logworm server
data/logworm_amqp.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{logworm_amqp}
5
- s.version = "0.9.1"
5
+ s.version = "0.9.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Pomelo, LLC"]
9
- s.date = %q{2010-08-10}
9
+ s.date = %q{2010-08-11}
10
10
  s.description = %q{logworm - logging service}
11
11
  s.email = %q{schapira@pomelollc.com}
12
12
  s.executables = ["lw-compute", "lw-tail"]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logworm_amqp
3
3
  version: !ruby/object:Gem::Version
4
- hash: 57
4
+ hash: 63
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 1
10
- version: 0.9.1
9
+ - 2
10
+ version: 0.9.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Pomelo, LLC
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-10 00:00:00 -04:00
18
+ date: 2010-08-11 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency