logger_facade 0.3.0 → 0.3.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a44006ba93de9dceaa753368eb3b452fe733e416
4
- data.tar.gz: 654b4861ab41420d47ed09e825af6672c7a8683b
3
+ metadata.gz: 23cc1584b5cfa42c103b970633ce4ae8b0a53690
4
+ data.tar.gz: 2886973542c5e009e047e29c7c4d150e6a77d9b9
5
5
  SHA512:
6
- metadata.gz: 57d9fa7a05c8819f5976d0b38296d8efa1a5a4e55a2989339ecb03ec0af7166ebb72ab3d6638350d27dbb57db693167f8b20cb7509a9ea7195bde31256aaea1c
7
- data.tar.gz: da2c70344b93d61fc57d6d84804a959f56aa6977032ab149e8edc2aa003daa13b815fa5078c79fc66a9344194fe0477c8c6269649158fec4a89b20d66d079942
6
+ metadata.gz: 5c9fd2d2e1e416cc28da978ba219c6ff3c4202c8f99a8acb6aa41df8a15d1b1c3e64d007eb78ed18ec2e2846baa3bd037e9ca60c71a8b5bd0d0f7281a54fe616
7
+ data.tar.gz: a18d4667ceb7cd90e2d9b323ab0c17c4f96299a1018a9f58b1c5ff883f52e9fe47f11fbf70cda146f9626830c54362eb78e445136e68decc53d57454c69f4020
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- logger_facade (0.3.0)
4
+ logger_facade (0.3.1)
5
5
  airbrake (~> 4.0)
6
6
  hashie (~> 3.2)
7
7
  sucker_punch (~> 1.1)
@@ -19,7 +19,8 @@ module LoggerFacade::Middleware
19
19
  metadata["bytes"],
20
20
  metadata["request_time"] ]
21
21
 
22
- @logger.info(msg, metadata)
22
+ severity = get_severity(metadata["response"])
23
+ @logger.send(severity, msg, metadata)
23
24
  end
24
25
 
25
26
  def get_metadata(env, status, header, began_at)
@@ -39,5 +40,16 @@ module LoggerFacade::Middleware
39
40
  }
40
41
  end
41
42
 
43
+ def get_severity(status)
44
+ status = status.to_i
45
+ if status >= 400 and status < 500
46
+ :warn
47
+ elsif status >= 500
48
+ :error
49
+ else
50
+ :info
51
+ end
52
+ end
53
+
42
54
  end
43
55
  end
@@ -2,21 +2,14 @@ require 'airbrake'
2
2
 
3
3
  module LoggerFacade::Plugins
4
4
 
5
- class Airbrake
5
+ class Airbrake < Base
6
6
 
7
- attr_reader :name, :environment
7
+ attr_reader :environment
8
8
 
9
9
  def initialize(environment = nil)
10
- @name = "LoggerFacade::Plugins::Airbrake"
10
+ super("LoggerFacade::Plugins::Airbrake", { level: :error })
11
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
12
+ set_default_airbrake_config
20
13
  end
21
14
 
22
15
  def configure(&block)
@@ -25,27 +18,17 @@ module LoggerFacade::Plugins
25
18
  end
26
19
  end
27
20
 
28
- def is_debug
29
- false
30
- end
31
-
32
- def trace(logger, message)
33
- # do nothing
34
- end
21
+ protected
35
22
 
36
- def debug(logger, message)
37
- # do nothing
38
- end
23
+ def log(log_level, message, logger, metadata)
24
+ return unless is_level_active(log_level)
39
25
 
40
- def info(logger, message)
41
- # do nothing
26
+ notify(logger, message, metadata)
42
27
  end
43
28
 
44
- def warn(logger, message)
45
- # do nothing
46
- end
29
+ private
47
30
 
48
- def error(logger, message)
31
+ def notify(logger, message, metadata)
49
32
  return unless valid_config
50
33
 
51
34
  if message.is_a? Exception
@@ -55,7 +38,15 @@ module LoggerFacade::Plugins
55
38
  end
56
39
  end
57
40
 
58
- private
41
+ def set_default_airbrake_config
42
+ ::Airbrake.configure do |config|
43
+ config.host = nil
44
+ config.port = 80
45
+ config.secure = config.port == 443
46
+ config.async = true
47
+ config.development_environments = %w(development test)
48
+ end
49
+ end
59
50
 
60
51
  def valid_config
61
52
  config = ::Airbrake.configuration
@@ -1,3 +1,3 @@
1
1
  module LoggerFacade
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.1'
3
3
  end
@@ -45,7 +45,33 @@ describe LoggerFacade::Middleware::Rack do
45
45
  Rack::MockRequest.new(described_class.new(app)).get("/path?q=true")
46
46
  end
47
47
  end
48
-
48
+
49
+ context 'severity' do
50
+
51
+ it "log 200 status to info" do
52
+ expect(logger).to receive(:info)
53
+ Rack::MockRequest.new(described_class.new(app)).get("/path")
54
+ end
55
+
56
+ it "log 300 status to info" do
57
+ expect(logger).to receive(:info)
58
+ Rack::MockRequest.new(described_class.new(app)).get("/path")
59
+ end
60
+
61
+ it "log 400 status to warn" do
62
+ expect(logger).to receive(:warn)
63
+ app = -> (env) { [400, env, "app"] }
64
+ Rack::MockRequest.new(described_class.new(app)).get("/path")
65
+ end
66
+
67
+ it "log 500 status to error" do
68
+ expect(logger).to receive(:error)
69
+ app = -> (env) { [500, env, "app"] }
70
+ Rack::MockRequest.new(described_class.new(app)).get("/path")
71
+ end
72
+
73
+ end
74
+
49
75
  context 'with proper metadata' do
50
76
 
51
77
  after do
@@ -4,6 +4,8 @@ describe LoggerFacade::Plugins::Airbrake do
4
4
 
5
5
  subject { described_class.new(:test) }
6
6
 
7
+ let(:message) { "call with message" }
8
+
7
9
  before :each do
8
10
 
9
11
  subject.configure do |c|
@@ -39,13 +41,27 @@ describe LoggerFacade::Plugins::Airbrake do
39
41
  context("logging in #{level} level") do
40
42
 
41
43
  it("doesn't notify") do
42
- message = "call with message"
43
44
  expect(::Airbrake).not_to receive(:notify_or_ignore)
44
45
  subject.send(level.to_sym, "name", message)
45
46
  end
46
47
 
47
48
  end
48
49
 
50
+ context("accepts metadata") do
51
+
52
+ it("logging in #{level} level with metadata") do
53
+ expect(::Airbrake).not_to receive(:notify_or_ignore)
54
+ subject.send(level.to_sym, "name", message, metadata: { context: "info" })
55
+ end
56
+
57
+ end
58
+
59
+ end
60
+
61
+ %w(trace debug info warn error).each do |level|
62
+
63
+
64
+
49
65
  end
50
66
 
51
67
  context("logging in error level") do
@@ -53,7 +69,6 @@ describe LoggerFacade::Plugins::Airbrake do
53
69
  context('with message') do
54
70
 
55
71
  it("notify") do
56
- message = "call with message"
57
72
  expect(::Airbrake).to receive(:notify_or_ignore)
58
73
  .with(hash_including(
59
74
  :error_class => "NAME::LogError",
@@ -81,6 +96,11 @@ describe LoggerFacade::Plugins::Airbrake do
81
96
 
82
97
  end
83
98
 
99
+ it("accepts metadata") do
100
+ expect(::Airbrake).to receive(:notify_or_ignore)
101
+ subject.error("name", message, metadata: { context: "information" })
102
+ end
103
+
84
104
  end
85
105
 
86
106
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logger_facade
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pedro Januário
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-08 00:00:00.000000000 Z
11
+ date: 2015-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler