loga 2.3.0 → 2.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 +4 -4
- data/.codeclimate.yml +0 -2
- data/CHANGELOG.md +4 -0
- data/lib/loga/configuration.rb +5 -1
- data/lib/loga/log_subscribers/action_mailer.rb +15 -2
- data/lib/loga/version.rb +1 -1
- data/spec/integration/rails/action_mailer_spec.rb +1 -1
- data/spec/unit/loga/log_subscribers/action_mailer_spec.rb +62 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9144c2b13cb8e6ed178d6ee24e99c9d00d4ce23bf3198d487e1803d221038874
|
4
|
+
data.tar.gz: 2528a6ce89a60dccc50e22f98abd1e4e74ae3f49319adeed42a89a98ad4412f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d9b346f49a5661ab32f3cabe4a16edba7757aa5a5d10b830758d1ca12ff70ece723014701a5ba82da7d358736c320af4a91e7dee609ba657d200905b5afdb3f
|
7
|
+
data.tar.gz: e53c366b5efcb67136322cae79fa6f21fcfdbefd654cb982681067b02de0c86d02f678afe02b7e5c3db298024818ba06dd5ac4ad51f0c234ea799a906295782d
|
data/.codeclimate.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
5
5
|
and this project adheres to [Semantic Versioning](http://semver.org/).
|
6
6
|
|
7
|
+
## [2.3.1] - 2019-05-14
|
8
|
+
### Added
|
9
|
+
New configuration option `hide_pii` which defaults to `true` to hide email addresses in logs that get generate when an email is sent through action_mailer
|
10
|
+
|
7
11
|
## [2.3.0] - 2018-06-29
|
8
12
|
### Added
|
9
13
|
Support for Sidekiq `~> 5.0`.
|
data/lib/loga/configuration.rb
CHANGED
@@ -15,9 +15,10 @@ module Loga
|
|
15
15
|
].freeze
|
16
16
|
|
17
17
|
attr_accessor :device, :filter_exceptions, :filter_parameters,
|
18
|
-
:host, :level, :service_version, :sync, :tags
|
18
|
+
:host, :level, :service_version, :sync, :tags, :hide_pii
|
19
19
|
attr_reader :logger, :format, :service_name
|
20
20
|
|
21
|
+
# rubocop:disable Metrics/MethodLength
|
21
22
|
def initialize(user_options = {}, framework_options = {})
|
22
23
|
options = default_options.merge(framework_options)
|
23
24
|
.merge(environment_options)
|
@@ -33,11 +34,13 @@ module Loga
|
|
33
34
|
self.service_version = options[:service_version] || ServiceVersionStrategies.call
|
34
35
|
self.sync = options[:sync]
|
35
36
|
self.tags = options[:tags]
|
37
|
+
self.hide_pii = options[:hide_pii]
|
36
38
|
|
37
39
|
validate
|
38
40
|
|
39
41
|
@logger = initialize_logger
|
40
42
|
end
|
43
|
+
# rubocop:enable Metrics/MethodLength
|
41
44
|
|
42
45
|
def format=(name)
|
43
46
|
@format = name.to_s.to_sym
|
@@ -68,6 +71,7 @@ module Loga
|
|
68
71
|
level: :info,
|
69
72
|
sync: true,
|
70
73
|
tags: [],
|
74
|
+
hide_pii: true,
|
71
75
|
}
|
72
76
|
end
|
73
77
|
|
@@ -9,7 +9,11 @@ module Loga
|
|
9
9
|
recipients = event.payload[:to].join(',')
|
10
10
|
unique_id = event.payload[:unique_id]
|
11
11
|
duration = event.duration.round(1)
|
12
|
-
message
|
12
|
+
message = ''.tap do |string|
|
13
|
+
string << "#{mailer}: Sent mail"
|
14
|
+
string << " to #{recipients}" unless hide_pii?
|
15
|
+
string << " in (#{duration}ms)"
|
16
|
+
end
|
13
17
|
|
14
18
|
loga_event = Event.new(
|
15
19
|
data: { mailer: mailer, unique_id: unique_id },
|
@@ -41,10 +45,15 @@ module Loga
|
|
41
45
|
from = event.payload[:from]
|
42
46
|
mailer = event.payload[:mailer]
|
43
47
|
unique_id = event.payload[:unique_id]
|
48
|
+
message = ''.tap do |string|
|
49
|
+
string << 'Received mail'
|
50
|
+
string << " from #{from}" unless hide_pii?
|
51
|
+
string << " in (#{event.duration.round(1)}ms)"
|
52
|
+
end
|
44
53
|
|
45
54
|
loga_event = Event.new(
|
46
55
|
data: { mailer: mailer, unique_id: unique_id },
|
47
|
-
message:
|
56
|
+
message: message,
|
48
57
|
type: 'action_mailer',
|
49
58
|
)
|
50
59
|
|
@@ -54,6 +63,10 @@ module Loga
|
|
54
63
|
def logger
|
55
64
|
Loga.logger
|
56
65
|
end
|
66
|
+
|
67
|
+
def hide_pii?
|
68
|
+
Loga.configuration.hide_pii
|
69
|
+
end
|
57
70
|
end
|
58
71
|
end
|
59
72
|
end
|
data/lib/loga/version.rb
CHANGED
@@ -44,7 +44,7 @@ RSpec.describe Loga::LogSubscribers::ActionMailer, if: Rails.env.production? do
|
|
44
44
|
it 'has the proper payload for message delivery' do
|
45
45
|
FakeMailer.send_email
|
46
46
|
|
47
|
-
message_pattern = /^FakeMailer: Sent mail
|
47
|
+
message_pattern = /^FakeMailer: Sent mail \(*/
|
48
48
|
expect(last_log_entry['short_message']).to match(message_pattern)
|
49
49
|
end
|
50
50
|
|
@@ -24,11 +24,34 @@ RSpec.describe Loga::LogSubscribers::ActionMailer do
|
|
24
24
|
to: ['user@example.com'],
|
25
25
|
}
|
26
26
|
end
|
27
|
+
let(:config) { instance_double Loga::Configuration, hide_pii: hide_pii }
|
27
28
|
|
28
|
-
|
29
|
+
before do
|
29
30
|
allow(Loga.logger).to receive(:info)
|
30
|
-
|
31
|
-
|
31
|
+
allow(Loga).to receive(:configuration).and_return(config)
|
32
|
+
end
|
33
|
+
|
34
|
+
context 'when configuration hide_pii is true' do
|
35
|
+
let(:hide_pii) { true }
|
36
|
+
|
37
|
+
it 'logs an info message' do
|
38
|
+
mailer.deliver(event)
|
39
|
+
expect(Loga.logger).to have_received(:info).with(Loga::Event) do |event|
|
40
|
+
expect(event.message).to include('FakeMailer: Sent mail')
|
41
|
+
expect(event.message).not_to include('user@example.com')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context 'when configuration option hide_pii is false' do
|
47
|
+
let(:hide_pii) { false }
|
48
|
+
|
49
|
+
it 'logs an info message' do
|
50
|
+
mailer.deliver(event)
|
51
|
+
expect(Loga.logger).to have_received(:info).with(Loga::Event) do |event|
|
52
|
+
expect(event.message).to include('FakeMailer: Sent mail to user@example.com')
|
53
|
+
end
|
54
|
+
end
|
32
55
|
end
|
33
56
|
end
|
34
57
|
end
|
@@ -45,7 +68,12 @@ RSpec.describe Loga::LogSubscribers::ActionMailer do
|
|
45
68
|
it 'logs an info message' do
|
46
69
|
allow(Loga.logger).to receive(:debug)
|
47
70
|
mailer.process(event)
|
48
|
-
expect(Loga.logger).to have_received(:debug)
|
71
|
+
expect(Loga.logger).to have_received(:debug)
|
72
|
+
.with(kind_of(Loga::Event)) do |event|
|
73
|
+
expect(event.message).to include(
|
74
|
+
'FakeMailer#hello_world: Processed outbound mail',
|
75
|
+
)
|
76
|
+
end
|
49
77
|
end
|
50
78
|
end
|
51
79
|
end
|
@@ -59,11 +87,38 @@ RSpec.describe Loga::LogSubscribers::ActionMailer do
|
|
59
87
|
subject: 'Lorem ipsum',
|
60
88
|
}
|
61
89
|
end
|
90
|
+
let(:config) { instance_double Loga::Configuration, hide_pii: hide_pii }
|
62
91
|
|
63
|
-
|
92
|
+
before do
|
64
93
|
allow(Loga.logger).to receive(:info)
|
65
|
-
|
66
|
-
|
94
|
+
allow(Loga).to receive(:configuration).and_return(config)
|
95
|
+
end
|
96
|
+
|
97
|
+
context 'when configuration hide_pii is true' do
|
98
|
+
let(:hide_pii) { true }
|
99
|
+
|
100
|
+
it 'logs an info message without email' do
|
101
|
+
mailer.receive(event)
|
102
|
+
expect(Loga.logger).to have_received(:info)
|
103
|
+
.with(kind_of(Loga::Event)) do |event|
|
104
|
+
expect(event.message).to include('Received mail')
|
105
|
+
expect(event.message).not_to include('loremipsum@example.com')
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
context 'when configuration option hide_pii is false' do
|
111
|
+
let(:hide_pii) { false }
|
112
|
+
|
113
|
+
it 'logs an info message with email' do
|
114
|
+
mailer.receive(event)
|
115
|
+
expect(Loga.logger).to have_received(:info)
|
116
|
+
.with(kind_of(Loga::Event)) do |event|
|
117
|
+
expect(event.message).to include(
|
118
|
+
'Received mail from loremipsum@example.com',
|
119
|
+
)
|
120
|
+
end
|
121
|
+
end
|
67
122
|
end
|
68
123
|
end
|
69
124
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: loga
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Funding Circle
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|