paul_bunyan 1.5.2 → 1.5.3
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 +5 -5
- data/lib/paul_bunyan/metadata_logging.rb +13 -5
- data/lib/paul_bunyan/railtie.rb +22 -10
- data/lib/paul_bunyan/text_formatter.rb +1 -1
- data/lib/paul_bunyan/version.rb +1 -1
- data/spec/lib/paul_bunyan/metadata_logging_spec.rb +88 -42
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 6cd239b74337270ec4552ab5b968097fb992fc10f16865db5636a72b470e8d01
|
4
|
+
data.tar.gz: '09a9523fcc3b38208a572ffe57baebfa28c085c709c3ac0adf94b4db34982035'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 98d74e92f6f9b2c575ab9511b8070724aa181e1a7f8c60fa72f004db79eb301defdfdce8b185bb21ff034204383a7aeb190e7c748cba3b5e2722691c78a7391d
|
7
|
+
data.tar.gz: eb3cc2f0857fd064339635230a56246adbab2da6a88a3c95e72696fe3be4db246462e083aaa6d40ed96c4368ea4c0d7c686a46acbe0f2d9551a3040791402f3e
|
@@ -1,23 +1,31 @@
|
|
1
1
|
module PaulBunyan
|
2
2
|
module MetadataLogging
|
3
3
|
def clear_metadata!
|
4
|
-
formatter.clear_metadata!
|
4
|
+
formatter.clear_metadata! if formatter.respond_to?(:clear_metadata!)
|
5
5
|
end
|
6
6
|
|
7
7
|
def with_metadata(metadata)
|
8
|
-
formatter.with_metadata
|
8
|
+
if formatter.respond_to?(:with_metadata)
|
9
|
+
formatter.with_metadata(metadata) { yield self }
|
10
|
+
else
|
11
|
+
yield self
|
12
|
+
end
|
9
13
|
end
|
10
14
|
|
11
15
|
def add_metadata(metadata)
|
12
|
-
formatter.add_metadata(metadata)
|
16
|
+
formatter.add_metadata(metadata) if formatter.respond_to?(:add_metadata)
|
13
17
|
end
|
14
18
|
|
15
19
|
def remove_metadata(metadata)
|
16
|
-
formatter.remove_metadata(metadata)
|
20
|
+
formatter.remove_metadata(metadata) if formatter.respond_to?(:remove_metadata)
|
17
21
|
end
|
18
22
|
|
19
23
|
def current_metadata
|
20
|
-
formatter.current_metadata
|
24
|
+
if formatter.respond_to?(:current_metadata)
|
25
|
+
return formatter.current_metadata
|
26
|
+
else
|
27
|
+
return {}
|
28
|
+
end
|
21
29
|
end
|
22
30
|
|
23
31
|
def flush
|
data/lib/paul_bunyan/railtie.rb
CHANGED
@@ -17,6 +17,16 @@ module PaulBunyan
|
|
17
17
|
Rails.env.development? || Rails.env.test?
|
18
18
|
end
|
19
19
|
|
20
|
+
def self.rake_task?
|
21
|
+
File.basename($0) == 'rake'
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.migrating?
|
25
|
+
rake_task? && ARGV.include?('db:migrate')
|
26
|
+
end
|
27
|
+
|
28
|
+
delegate :rake_task?, :migrating?, to: :class
|
29
|
+
|
20
30
|
# Set up the config and some defaults
|
21
31
|
config.logging = ActiveSupport::OrderedOptions.new
|
22
32
|
config.logging.override_location = !Rails.env.test?
|
@@ -27,18 +37,20 @@ module PaulBunyan
|
|
27
37
|
initializer 'initalize_logger.logging', group: :all, before: :initialize_logger do |app|
|
28
38
|
logging_config = config.logging
|
29
39
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
40
|
+
unless migrating?
|
41
|
+
new_logger = PaulBunyan.add_logger(ActiveSupport::Logger.new(log_target(app.config)))
|
42
|
+
new_logger.level = PaulBunyan::Level.coerce_level(ENV['LOG_LEVEL'] || ::Rails.application.config.log_level || 'INFO')
|
43
|
+
new_logger.formatter = logging_config.formatter
|
44
|
+
new_logger.extend(ActiveSupport::TaggedLogging) if logging_config.formatter.respond_to?(:tagged)
|
45
|
+
new_logger.extend(PaulBunyan::MetadataLogging) if logging_config.formatter.respond_to?(:with_metadata)
|
35
46
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
47
|
+
if logging_config.handle_request_logging
|
48
|
+
unsubscribe_default_log_subscribers
|
49
|
+
LogSubscriber.subscribe_to_events
|
50
|
+
end
|
40
51
|
|
41
|
-
|
52
|
+
Rails.logger = PaulBunyan.logger
|
53
|
+
end
|
42
54
|
end
|
43
55
|
|
44
56
|
console do
|
@@ -5,7 +5,7 @@ end
|
|
5
5
|
|
6
6
|
module PaulBunyan
|
7
7
|
class TextFormatter < Logger::Formatter
|
8
|
-
include ActiveSupport::TaggedLogging::Formatter if defined?(ActiveSupport::TaggedLogging)
|
8
|
+
include ActiveSupport::TaggedLogging::Formatter if defined?(ActiveSupport::TaggedLogging::Formatter)
|
9
9
|
|
10
10
|
def initialize(include_metadata: true)
|
11
11
|
@include_metadata = include_metadata
|
data/lib/paul_bunyan/version.rb
CHANGED
@@ -1,62 +1,108 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe PaulBunyan::MetadataLogging do
|
4
|
-
|
5
|
-
|
4
|
+
context "with a formatter that supports metadata" do
|
5
|
+
subject { Object.new }
|
6
|
+
let(:formatter) { double('formatter') }
|
6
7
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
before do
|
9
|
+
subject.extend(PaulBunyan::MetadataLogging)
|
10
|
+
allow(subject).to receive(:formatter).and_return(formatter)
|
11
|
+
end
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
it 'must delegate clear_metadata! to the formatter' do
|
14
|
+
expect(formatter).to receive(:clear_metadata!)
|
15
|
+
subject.clear_metadata!
|
16
|
+
end
|
16
17
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
it 'must delegate with_metadata to the formatter' do
|
19
|
+
expect(formatter).to receive(:with_metadata).with(foo: 'bar').and_yield
|
20
|
+
subject.with_metadata(foo: 'bar') do |logger|
|
21
|
+
expect(subject).to eq logger
|
22
|
+
end
|
21
23
|
end
|
22
|
-
end
|
23
24
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
it 'must delegate add_metadata to the formatter' do
|
26
|
+
expect(formatter).to receive(:add_metadata).with(foo: 'bar')
|
27
|
+
subject.add_metadata(foo: 'bar')
|
28
|
+
end
|
28
29
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
it 'must delegate current_metadata to the formatter' do
|
31
|
+
expect(formatter).to receive(:current_metadata).and_return({})
|
32
|
+
subject.current_metadata
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'must delegate remove_metadata to the formatter' do
|
36
|
+
expect(formatter).to receive(:remove_metadata).with(foo: 'bar')
|
37
|
+
subject.remove_metadata(foo: 'bar')
|
38
|
+
end
|
39
|
+
|
40
|
+
context '#flush' do
|
41
|
+
it 'clears metadata on the formatter' do
|
42
|
+
expect(formatter).to receive(:clear_metadata!)
|
43
|
+
subject.flush
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'sends flush to a parent' do
|
47
|
+
klass = Class.new
|
48
|
+
klass.class_eval do
|
49
|
+
def flush
|
50
|
+
flush_behavior()
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
metadata_logger = klass.new
|
55
|
+
metadata_logger.extend(PaulBunyan::MetadataLogging)
|
56
|
+
allow(metadata_logger).to receive(:formatter).and_return(formatter)
|
57
|
+
allow(formatter).to receive(:clear_metadata!)
|
33
58
|
|
34
|
-
|
35
|
-
|
36
|
-
|
59
|
+
expect(metadata_logger).to receive(:flush_behavior)
|
60
|
+
metadata_logger.flush
|
61
|
+
end
|
62
|
+
end
|
37
63
|
end
|
38
64
|
|
39
|
-
context
|
40
|
-
|
41
|
-
|
42
|
-
|
65
|
+
context "with a formatter that does not support metadata" do
|
66
|
+
subject { Object.new }
|
67
|
+
let(:formatter) { PaulBunyan::TextFormatter.new }
|
68
|
+
|
69
|
+
before do
|
70
|
+
subject.extend(PaulBunyan::MetadataLogging)
|
71
|
+
allow(subject).to receive(:formatter).and_return(formatter)
|
43
72
|
end
|
44
73
|
|
45
|
-
it '
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
74
|
+
it 'must not call clear_metadata! on the formatter' do
|
75
|
+
expect(formatter).to_not respond_to(:clear_metadata!)
|
76
|
+
subject.clear_metadata!
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'must delegate with_metadata to the formatter' do
|
80
|
+
expect(formatter).to_not respond_to(:with_metadata)
|
81
|
+
subject.with_metadata(foo: 'bar') do |logger|
|
82
|
+
expect(subject).to eq logger
|
51
83
|
end
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'must delegate add_metadata to the formatter' do
|
87
|
+
expect(formatter).to_not respond_to(:add_metadata)
|
88
|
+
subject.add_metadata(foo: 'bar')
|
89
|
+
end
|
52
90
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
91
|
+
it 'must delegate current_metadata to the formatter' do
|
92
|
+
expect(formatter).to_not respond_to(:current_metadata)
|
93
|
+
subject.current_metadata
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'must delegate remove_metadata to the formatter' do
|
97
|
+
expect(formatter).to_not respond_to(:remove_metadata)
|
98
|
+
subject.remove_metadata(foo: 'bar')
|
99
|
+
end
|
57
100
|
|
58
|
-
|
59
|
-
|
101
|
+
context '#flush' do
|
102
|
+
it 'clears metadata on the formatter' do
|
103
|
+
expect(formatter).to_not respond_to(:clear_metadata!)
|
104
|
+
subject.flush
|
105
|
+
end
|
60
106
|
end
|
61
107
|
end
|
62
108
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paul_bunyan
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Duane Johnson
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2018-
|
14
|
+
date: 2018-11-19 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: request_store
|
@@ -243,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
243
243
|
version: '0'
|
244
244
|
requirements: []
|
245
245
|
rubyforge_project:
|
246
|
-
rubygems_version: 2.6
|
246
|
+
rubygems_version: 2.7.6
|
247
247
|
signing_key:
|
248
248
|
specification_version: 4
|
249
249
|
summary: Logging for all the things
|