errlog 0.1.1 → 0.2.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.
- checksums.yaml +4 -4
- data/bin/errlogr +1 -1
- data/lib/errlog.rb +4 -0
- data/lib/errlog/context.rb +8 -0
- data/lib/errlog/rails_controller_extensions.rb +92 -0
- data/lib/errlog/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ed0cb0ec70f924ad34f237159636c0ab7c54b98
|
4
|
+
data.tar.gz: 1ba8e06be7edb9311ec15efbcc98f503a108b75f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 124b650da5d3e9fc1653407ca024177a2ec74a7515f5f5a2de6e2932e8e0ec9494298dda969f29b598fd58c4cbb83e6ce108d4c7982deb1db2af0f98d4bc9293
|
7
|
+
data.tar.gz: 9d0acde00ad38e9821024471f8dc4d785de77fa969b03dbf969d43172bcc77e9b82909285eaf93f6873f69ebba93cf15e787b175f2da9cefdb12aa4d975141ce
|
data/bin/errlogr
CHANGED
data/lib/errlog.rb
CHANGED
data/lib/errlog/context.rb
CHANGED
@@ -22,6 +22,14 @@ module Errlog
|
|
22
22
|
report "#{e.class.name}: #{e.to_s}", Errlog::ERROR
|
23
23
|
end
|
24
24
|
|
25
|
+
def report_warning text, &block
|
26
|
+
report text, Errlog::WARNING, &block
|
27
|
+
end
|
28
|
+
|
29
|
+
def report_trace text, &block
|
30
|
+
report text, Errlog::TRACE, &block
|
31
|
+
end
|
32
|
+
|
25
33
|
def report text, severity = Errlog::ERROR, &block
|
26
34
|
raise 'Errlog is not configured. Use Errlog.config' unless Errlog.configured?
|
27
35
|
!self.app_name and self.app_name = Errlog.app_name
|
@@ -0,0 +1,92 @@
|
|
1
|
+
module Errlog
|
2
|
+
module ControllerFilter
|
3
|
+
|
4
|
+
def self.included base
|
5
|
+
base.send :prepend_around_filter, :errlog_exceptions_trap
|
6
|
+
base.send :helper_method, :errlog_context
|
7
|
+
base.send :helper_method, :errlog_report
|
8
|
+
base.send :helper_method, :errlog_collect_context
|
9
|
+
base.send :helper_method, :errlog_exception
|
10
|
+
true
|
11
|
+
end
|
12
|
+
|
13
|
+
def errlog_context
|
14
|
+
@errlog_context || Errlog.clear_context
|
15
|
+
end
|
16
|
+
|
17
|
+
def errlog_exceptions_trap
|
18
|
+
ctx = @errlog_context = Errlog.clear_context
|
19
|
+
|
20
|
+
rl = Rails.logger = ctx.create_logger Rails.logger
|
21
|
+
acl = ActionController::Base.logger = ctx.create_logger ActionController::Base.logger
|
22
|
+
arl = nil
|
23
|
+
if defined?(ActiveRecord)
|
24
|
+
arl = ActiveRecord::Base.logger = ctx.create_logger ActiveRecord::Base.logger
|
25
|
+
end
|
26
|
+
|
27
|
+
yield
|
28
|
+
|
29
|
+
rescue Exception => e
|
30
|
+
errlog_collect_context ctx
|
31
|
+
ctx.report_exception e
|
32
|
+
raise
|
33
|
+
|
34
|
+
ensure
|
35
|
+
Rails.logger = rl.prev_logger
|
36
|
+
ActionController::Base.logger = acl.prev_logger
|
37
|
+
arl and ActiveRecord::Base.logger = arl.prev_logger
|
38
|
+
true
|
39
|
+
end
|
40
|
+
|
41
|
+
def errlog_exception e, context = nil
|
42
|
+
errlog_collect_context(context).report_exception e
|
43
|
+
end
|
44
|
+
|
45
|
+
def errlog_report text, severity = Errlog::ERROR, context=nil
|
46
|
+
errlog_collect_context(context).report text, severity
|
47
|
+
end
|
48
|
+
|
49
|
+
def errlog_collect_context ctx=nil
|
50
|
+
ctx ||= errlog_context
|
51
|
+
ctx.component = request.path
|
52
|
+
ctx.params = params
|
53
|
+
headers = {}
|
54
|
+
request.headers.to_hash.each { |k, v|
|
55
|
+
next if k =~ /cookie/i || v.class.name =~ /cookie/i
|
56
|
+
res = nil
|
57
|
+
case v
|
58
|
+
when Hash
|
59
|
+
res = {}
|
60
|
+
v.each { |k, v| res[k] = v.to_s }
|
61
|
+
when Array;
|
62
|
+
res = v.map &:to_s
|
63
|
+
#when StringIO, IO
|
64
|
+
# next
|
65
|
+
else
|
66
|
+
res = v.to_s
|
67
|
+
end
|
68
|
+
headers[k.to_s] = res
|
69
|
+
}
|
70
|
+
ctx.headers = headers
|
71
|
+
if respond_to?(:current_user)
|
72
|
+
ctx.current_user = if current_user
|
73
|
+
res = [current_user.id]
|
74
|
+
res << current_user.email if current_user.respond_to? :email
|
75
|
+
res << current_user.full_name if current_user.respond_to? :full_name
|
76
|
+
res
|
77
|
+
else
|
78
|
+
"not logged in"
|
79
|
+
end
|
80
|
+
end
|
81
|
+
ctx.url = request.url
|
82
|
+
ctx.remote_ip = request.remote_ip
|
83
|
+
if request.url =~ %r|^https?://(.+?)[/:]|
|
84
|
+
ctx.application = $1
|
85
|
+
end
|
86
|
+
ctx
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
ActionController::Base.send :include, Errlog::ControllerFilter
|
data/lib/errlog/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: errlog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sergeych
|
@@ -102,6 +102,7 @@ files:
|
|
102
102
|
- lib/errlog/constants.rb
|
103
103
|
- lib/errlog/context.rb
|
104
104
|
- lib/errlog/packager.rb
|
105
|
+
- lib/errlog/rails_controller_extensions.rb
|
105
106
|
- lib/errlog/version.rb
|
106
107
|
- spec/errlog_spec.rb
|
107
108
|
- spec/packager_spec.rb
|