logger_facade 0.1.0 → 0.2.0
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/Gemfile.lock +12 -1
- data/lib/logger_facade/plugins.rb +1 -0
- data/lib/logger_facade/plugins/airbrake.rb +86 -0
- data/lib/logger_facade/version.rb +1 -1
- data/logger_facade.gemspec +3 -0
- data/spec/unit/plugins/airbrake_spec.rb +86 -0
- metadata +32 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0180ea9d2371adfb7dc9745b2b5c550fada71357
|
4
|
+
data.tar.gz: 9969640e45a3c0f9f1be24f52834c9c5f1a37b83
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20a421d2ff5f652551b050047652034c374974eca980c68787815f4910acefb7d79032d033353ab64e1dbadeb80612e044c259fdb4da0a3c879fae971df7f8cc
|
7
|
+
data.tar.gz: f15e7d566a1b471521260c54d4555a1a82ff6b48d9cbfce7c6aceee9112ed7e30ccae0e5921911a8963d32aa452365d6dbe6ef18ac31b0c6c04ba8afeaa5c51a
|
data/Gemfile.lock
CHANGED
@@ -1,13 +1,21 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
logger_facade (0.
|
4
|
+
logger_facade (0.2.0)
|
5
|
+
airbrake (~> 4.0)
|
5
6
|
hashie (~> 3.2)
|
7
|
+
sucker_punch (~> 1.1)
|
6
8
|
|
7
9
|
GEM
|
8
10
|
remote: https://rubygems.org/
|
9
11
|
specs:
|
12
|
+
airbrake (4.0.0)
|
13
|
+
builder
|
14
|
+
multi_json
|
15
|
+
builder (3.2.2)
|
10
16
|
bump (0.5.0)
|
17
|
+
celluloid (0.15.2)
|
18
|
+
timers (~> 1.1.0)
|
11
19
|
codeclimate-test-reporter (0.3.0)
|
12
20
|
simplecov (>= 0.7.1, < 1.0.0)
|
13
21
|
coderay (1.1.0)
|
@@ -39,6 +47,9 @@ GEM
|
|
39
47
|
simplecov-html (~> 0.8.0)
|
40
48
|
simplecov-html (0.8.0)
|
41
49
|
slop (3.6.0)
|
50
|
+
sucker_punch (1.1)
|
51
|
+
celluloid (~> 0.15.2)
|
52
|
+
timers (1.1.0)
|
42
53
|
|
43
54
|
PLATFORMS
|
44
55
|
ruby
|
@@ -0,0 +1,86 @@
|
|
1
|
+
require 'airbrake'
|
2
|
+
|
3
|
+
module LoggerFacade::Plugins
|
4
|
+
|
5
|
+
class Airbrake
|
6
|
+
|
7
|
+
attr_reader :name, :environment
|
8
|
+
|
9
|
+
def initialize(environment = nil)
|
10
|
+
@name = "LoggerFacade::Plugins::Airbrake"
|
11
|
+
@environment = environment.to_s
|
12
|
+
|
13
|
+
::Airbrake.configure do |config|
|
14
|
+
config.host = nil
|
15
|
+
config.port = 80
|
16
|
+
config.secure = config.port == 443
|
17
|
+
config.async = true
|
18
|
+
config.development_environments = %w(development test)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def configure(&block)
|
23
|
+
::Airbrake.configure do |config|
|
24
|
+
yield config
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def is_debug
|
29
|
+
false
|
30
|
+
end
|
31
|
+
|
32
|
+
def trace(logger, message)
|
33
|
+
# do nothing
|
34
|
+
end
|
35
|
+
|
36
|
+
def debug(logger, message)
|
37
|
+
# do nothing
|
38
|
+
end
|
39
|
+
|
40
|
+
def info(logger, message)
|
41
|
+
# do nothing
|
42
|
+
end
|
43
|
+
|
44
|
+
def warn(logger, message)
|
45
|
+
# do nothing
|
46
|
+
end
|
47
|
+
|
48
|
+
def error(logger, message)
|
49
|
+
return unless valid_config
|
50
|
+
|
51
|
+
if message.is_a? Exception
|
52
|
+
notify_exception(message, logger)
|
53
|
+
else
|
54
|
+
notify_error_log(message, logger)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
def valid_config
|
61
|
+
config = ::Airbrake.configuration
|
62
|
+
config.api_key && config.host
|
63
|
+
end
|
64
|
+
|
65
|
+
def notify_error_log(message, logger)
|
66
|
+
::Airbrake.notify_or_ignore(
|
67
|
+
:error_class => "#{logger}::LogError",
|
68
|
+
:error_message => "#{logger}::LogError: #{message}",
|
69
|
+
:backtrace => $@,
|
70
|
+
:cgi_data => ENV.to_hash,
|
71
|
+
:environment_name => environment
|
72
|
+
)
|
73
|
+
end
|
74
|
+
|
75
|
+
def notify_exception(e, logger)
|
76
|
+
::Airbrake.notify_or_ignore(
|
77
|
+
e,
|
78
|
+
:backtrace => $@,
|
79
|
+
:cgi_data => ENV.to_hash,
|
80
|
+
:environment_name => environment
|
81
|
+
)
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
data/logger_facade.gemspec
CHANGED
@@ -31,4 +31,7 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.add_development_dependency 'bump', '~> 0.5'
|
32
32
|
|
33
33
|
spec.add_dependency 'hashie', '~> 3.2'
|
34
|
+
spec.add_dependency 'airbrake', '~> 4.0'
|
35
|
+
# sucker punch is used to use airbrake async
|
36
|
+
spec.add_dependency 'sucker_punch', '~> 1.1'
|
34
37
|
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LoggerFacade::Plugins::Airbrake do
|
4
|
+
|
5
|
+
subject { described_class.new(:test) }
|
6
|
+
|
7
|
+
before :each do
|
8
|
+
|
9
|
+
subject.configure do |c|
|
10
|
+
c.host = "host.test"
|
11
|
+
c.api_key = "key.test"
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
describe('#is_debug') do
|
17
|
+
|
18
|
+
it('returns false') do
|
19
|
+
expect(subject.is_debug).to be false
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
describe('#configure') do
|
25
|
+
|
26
|
+
it('overrides Airbrake configurations') do
|
27
|
+
|
28
|
+
subject.configure do |config|
|
29
|
+
config.api_key = "key"
|
30
|
+
end
|
31
|
+
|
32
|
+
expect(::Airbrake.configuration.api_key).to eq("key")
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
%w(trace debug info warn).each do |level|
|
38
|
+
|
39
|
+
context("logging in #{level} level") do
|
40
|
+
|
41
|
+
it("doesn't notify") do
|
42
|
+
message = "call with message"
|
43
|
+
expect(::Airbrake).not_to receive(:notify_or_ignore)
|
44
|
+
subject.send(level.to_sym, "name", message)
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
context("logging in error level") do
|
52
|
+
|
53
|
+
context('with message') do
|
54
|
+
|
55
|
+
it("notify") do
|
56
|
+
message = "call with message"
|
57
|
+
expect(::Airbrake).to receive(:notify_or_ignore)
|
58
|
+
.with(hash_including(
|
59
|
+
:error_class => "NAME::LogError",
|
60
|
+
:error_message => "NAME::LogError: #{message}",
|
61
|
+
:backtrace => anything,
|
62
|
+
:cgi_data => anything,
|
63
|
+
:environment_name=> "test"
|
64
|
+
)) { nil }
|
65
|
+
subject.error("NAME", message)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
context('with exception') do
|
70
|
+
|
71
|
+
it("notify") do
|
72
|
+
e = Exception.new 'test notify'
|
73
|
+
expect(::Airbrake).to receive(:notify_or_ignore)
|
74
|
+
.with(e, hash_including(
|
75
|
+
:backtrace => anything,
|
76
|
+
:cgi_data => anything,
|
77
|
+
:environment_name=> "test"
|
78
|
+
)) { nil }
|
79
|
+
subject.error("NAME", e)
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logger_facade
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pedro Januário
|
@@ -122,6 +122,34 @@ dependencies:
|
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '3.2'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: airbrake
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '4.0'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '4.0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: sucker_punch
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '1.1'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '1.1'
|
125
153
|
description: |-
|
126
154
|
Simple class library to work as logger facade.
|
127
155
|
This simple logger facade allows you to hook plugins to execute logging.
|
@@ -145,6 +173,7 @@ files:
|
|
145
173
|
- lib/logger_facade/loggable.rb
|
146
174
|
- lib/logger_facade/manager.rb
|
147
175
|
- lib/logger_facade/plugins.rb
|
176
|
+
- lib/logger_facade/plugins/airbrake.rb
|
148
177
|
- lib/logger_facade/plugins/console.rb
|
149
178
|
- lib/logger_facade/version.rb
|
150
179
|
- logger_facade.gemspec
|
@@ -152,6 +181,7 @@ files:
|
|
152
181
|
- spec/unit/log_spec.rb
|
153
182
|
- spec/unit/loggable_spec.rb
|
154
183
|
- spec/unit/manager_spec.rb
|
184
|
+
- spec/unit/plugins/airbrake_spec.rb
|
155
185
|
- spec/unit/plugins/console_spec.rb
|
156
186
|
homepage: https://github.com/pjanuario/logger-facade-ruby
|
157
187
|
licenses:
|
@@ -184,4 +214,5 @@ test_files:
|
|
184
214
|
- spec/unit/log_spec.rb
|
185
215
|
- spec/unit/loggable_spec.rb
|
186
216
|
- spec/unit/manager_spec.rb
|
217
|
+
- spec/unit/plugins/airbrake_spec.rb
|
187
218
|
- spec/unit/plugins/console_spec.rb
|