semlogger 0.0.9 → 0.0.10

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.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/lib/semlogger.rb +6 -4
  3. data/lib/semlogger/rack.rb +22 -7
  4. metadata +2 -2
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.9
1
+ 0.0.10
data/lib/semlogger.rb CHANGED
@@ -72,9 +72,10 @@ class Semlogger < ::Logger
72
72
  class <<self
73
73
  attr_accessor :progname, :logger
74
74
 
75
- def new_rails_logger config
75
+ def new_rails_logger config, logdev = nil
76
76
  require 'semlogger/rack'
77
- logdev = ::Rails.root.join( 'log', "#{::Rails.env.to_s.gsub('%', '%%')}.%Y-%m-%d.%$.log").to_s
77
+ logdev ||= ::Rails.root.join 'log', "#{::Rails.env.to_s.gsub('%', '%%')}.%Y-%m-%d.%$.log"
78
+ logdev = logdev.to_s
78
79
  logger = nil
79
80
  if Rails.env.production?
80
81
  logger = new logdev
@@ -106,11 +107,12 @@ class Semlogger < ::Logger
106
107
  end
107
108
 
108
109
  def tagged *tags, &e
109
- @tags += tags
110
+ @tags += tags.flatten.compact
110
111
  tags = tags.size
111
112
  yield
112
113
  ensure
113
- tags.times { @tags.pop }
114
+ #tags.times { @tags.pop }
115
+ @tags.slice! -tags .. -1
114
116
  end
115
117
 
116
118
  def add severity, message = nil, progname = nil, &block
@@ -1,28 +1,43 @@
1
1
  class Semlogger::Rack < Rails::Rack::Logger
2
2
  def initialize app, tags = nil, data = nil
3
3
  super app, tags
4
- @data = data
4
+ @data = data || {}
5
5
  end
6
6
 
7
7
  def call_app request, env
8
8
  path = request.filtered_path
9
- Semlogger.custom( :connection, request.ip, Thread.current.object_id, request.request_method, path).info
9
+ Rails.logger.custom( :connection, request.ip, Thread.current.object_id, request.request_method, path).info
10
10
  @app.call env
11
11
  ensure
12
12
  ActiveSupport::LogSubscriber.flush_all!
13
13
  end
14
14
 
15
15
  def call env
16
- if @data
17
- Rails.logger.data( compute_data( env)) { super env }
16
+ request = ActionDispatch::Request.new env
17
+ compute_tagged_ request do
18
+ compute_data_ request do
19
+ call_app request, env
20
+ end
21
+ end
22
+ end
23
+
24
+ def compute_tagged_ request
25
+ if Rails.logger.respond_to? :tagged
26
+ Rails.logger.tagged( compute_tags( request)) { yield }
18
27
  else
19
- super env
28
+ yield
20
29
  end
21
30
  end
22
31
 
23
- def compute_data env
24
- request = ActionDispatch::Request.new env
32
+ def compute_data_ request
33
+ if Rails.logger.respond_to? :data
34
+ Rails.logger.data( compute_data( request)) { yield }
35
+ else
36
+ yield
37
+ end
38
+ end
25
39
 
40
+ def compute_data request
26
41
  data = @data.dup
27
42
  data.each do |k, v|
28
43
  case v
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: semlogger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-19 00:00:00.000000000 Z
12
+ date: 2012-11-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json