logged 0.1.2 → 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 +5 -5
- data/.gitlab-ci.yml +188 -0
- data/.rubocop.yml +9 -1
- data/CHANGELOG.md +21 -7
- data/Gemfile +2 -0
- data/README.md +0 -13
- data/Rakefile +2 -0
- data/lib/logged.rb +4 -2
- data/lib/logged/configuration.rb +8 -6
- data/lib/logged/formatter/base.rb +2 -0
- data/lib/logged/formatter/json.rb +2 -0
- data/lib/logged/formatter/key_value.rb +2 -0
- data/lib/logged/formatter/logstash.rb +3 -1
- data/lib/logged/formatter/raw.rb +2 -0
- data/lib/logged/formatter/single_key.rb +2 -0
- data/lib/logged/level_conversion.rb +2 -0
- data/lib/logged/log_subscriber/action_controller.rb +20 -12
- data/lib/logged/log_subscriber/action_mailer.rb +21 -7
- data/lib/logged/log_subscriber/action_view.rb +5 -3
- data/lib/logged/log_subscriber/active_record.rb +3 -1
- data/lib/logged/log_subscriber/base.rb +3 -1
- data/lib/logged/logger.rb +5 -6
- data/lib/logged/rack/logger.rb +5 -3
- data/lib/logged/railtie.rb +2 -0
- data/lib/logged/subscriptions.rb +3 -3
- data/lib/logged/tagged_logging.rb +2 -0
- data/lib/logged/version.rb +3 -1
- data/logged.gemspec +11 -6
- data/spec/Gemfile +8 -0
- metadata +73 -30
- data/.travis.yml +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0b23f34edbce2c1958a910aef9086c08c2a1199dc8a43e7641a624ec7c01dbc1
|
4
|
+
data.tar.gz: fce639a1f040dbcb9ab7f940a1db7f375c0b6d0767787b4abf863515ea186425
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e45c2e34ce76e3e8df30159ebfaa3ff76f90e0172a53a04cde3eda6a10f99d6ae71d85acd69e4cd00bd9649d7d7e8d7076ca677dae532aabf00c4aeb054c71ff
|
7
|
+
data.tar.gz: d553bae88dfde17a57b45f99c1a395d82d0629daafd12c369596764057b8e122b3a5cdd7bb1adad7f83750d7819273d19a6a3929fd20dfa18f8f018209f48542
|
data/.gitlab-ci.yml
ADDED
@@ -0,0 +1,188 @@
|
|
1
|
+
stages:
|
2
|
+
- build
|
3
|
+
- test
|
4
|
+
- codequality
|
5
|
+
- security
|
6
|
+
|
7
|
+
build:
|
8
|
+
stage: build
|
9
|
+
image: ruby:2.6
|
10
|
+
script:
|
11
|
+
- gem install bundler --no-document
|
12
|
+
- bundle update
|
13
|
+
artifacts:
|
14
|
+
paths:
|
15
|
+
- Gemfile.lock
|
16
|
+
|
17
|
+
.rspec: &rspec
|
18
|
+
stage: test
|
19
|
+
before_script:
|
20
|
+
- ruby -v
|
21
|
+
- echo "${RSPEC_RAILS_VERSION}"
|
22
|
+
- gem install bundler -v "~>${BUNDLER_VERSION:-2.0}" --no-document
|
23
|
+
- export BUNDLE_GEMFILE="spec/Gemfile"
|
24
|
+
- bundle install --jobs=$(nproc) --path="../cache/bundle"
|
25
|
+
- bundle list
|
26
|
+
script:
|
27
|
+
- bundle exec rake spec
|
28
|
+
cache:
|
29
|
+
key: "$CI_JOB_NAME"
|
30
|
+
paths:
|
31
|
+
- cache/
|
32
|
+
|
33
|
+
rspec-ruby2.4-rails4.0:
|
34
|
+
<<: *rspec
|
35
|
+
image: ruby:2.4
|
36
|
+
variables:
|
37
|
+
BUNDLER_VERSION: '1.7'
|
38
|
+
RSPEC_RAILS_VERSION: '4.0'
|
39
|
+
|
40
|
+
rspec-ruby2.5-rails4.0:
|
41
|
+
<<: *rspec
|
42
|
+
image: ruby:2.5
|
43
|
+
variables:
|
44
|
+
BUNDLER_VERSION: '1.7'
|
45
|
+
RSPEC_RAILS_VERSION: '4.0'
|
46
|
+
|
47
|
+
rspec-ruby2.6-rails4.0:
|
48
|
+
<<: *rspec
|
49
|
+
image: ruby:2.6
|
50
|
+
variables:
|
51
|
+
BUNDLER_VERSION: '1.7'
|
52
|
+
RSPEC_RAILS_VERSION: '4.0'
|
53
|
+
|
54
|
+
rspec-ruby2.4-rails4.1:
|
55
|
+
<<: *rspec
|
56
|
+
image: ruby:2.4
|
57
|
+
variables:
|
58
|
+
BUNDLER_VERSION: '1.7'
|
59
|
+
RSPEC_RAILS_VERSION: '4.1'
|
60
|
+
|
61
|
+
rspec-ruby2.5-rails4.1:
|
62
|
+
<<: *rspec
|
63
|
+
image: ruby:2.5
|
64
|
+
variables:
|
65
|
+
BUNDLER_VERSION: '1.7'
|
66
|
+
RSPEC_RAILS_VERSION: '4.1'
|
67
|
+
|
68
|
+
rspec-ruby2.6-rails4.1:
|
69
|
+
<<: *rspec
|
70
|
+
image: ruby:2.6
|
71
|
+
variables:
|
72
|
+
BUNDLER_VERSION: '1.7'
|
73
|
+
RSPEC_RAILS_VERSION: '4.1'
|
74
|
+
|
75
|
+
rspec-ruby2.4-rails4.2:
|
76
|
+
<<: *rspec
|
77
|
+
image: ruby:2.4
|
78
|
+
variables:
|
79
|
+
BUNDLER_VERSION: '1.7'
|
80
|
+
RSPEC_RAILS_VERSION: '4.2'
|
81
|
+
|
82
|
+
rspec-ruby2.5-rails4.2:
|
83
|
+
<<: *rspec
|
84
|
+
image: ruby:2.5
|
85
|
+
variables:
|
86
|
+
BUNDLER_VERSION: '1.7'
|
87
|
+
RSPEC_RAILS_VERSION: '4.2'
|
88
|
+
|
89
|
+
rspec-ruby2.6-rails4.2:
|
90
|
+
<<: *rspec
|
91
|
+
image: ruby:2.6
|
92
|
+
variables:
|
93
|
+
BUNDLER_VERSION: '1.7'
|
94
|
+
RSPEC_RAILS_VERSION: '4.2'
|
95
|
+
|
96
|
+
rspec-ruby2.4-rails5.0:
|
97
|
+
<<: *rspec
|
98
|
+
image: ruby:2.4
|
99
|
+
variables:
|
100
|
+
RSPEC_RAILS_VERSION: '5.0'
|
101
|
+
|
102
|
+
rspec-ruby2.5-rails5.0:
|
103
|
+
<<: *rspec
|
104
|
+
image: ruby:2.5
|
105
|
+
variables:
|
106
|
+
RSPEC_RAILS_VERSION: '5.0'
|
107
|
+
|
108
|
+
rspec-ruby2.6-rails5.0:
|
109
|
+
<<: *rspec
|
110
|
+
image: ruby:2.6
|
111
|
+
variables:
|
112
|
+
RSPEC_RAILS_VERSION: '5.0'
|
113
|
+
|
114
|
+
rspec-ruby2.4-rails5.1:
|
115
|
+
<<: *rspec
|
116
|
+
image: ruby:2.4
|
117
|
+
variables:
|
118
|
+
RSPEC_RAILS_VERSION: '5.1'
|
119
|
+
|
120
|
+
rspec-ruby2.5-rails5.1:
|
121
|
+
<<: *rspec
|
122
|
+
image: ruby:2.5
|
123
|
+
variables:
|
124
|
+
RSPEC_RAILS_VERSION: '5.1'
|
125
|
+
|
126
|
+
rspec-ruby2.6-rails5.1:
|
127
|
+
<<: *rspec
|
128
|
+
image: ruby:2.6
|
129
|
+
variables:
|
130
|
+
RSPEC_RAILS_VERSION: '5.1'
|
131
|
+
|
132
|
+
rspec-ruby2.4-rails5.2:
|
133
|
+
<<: *rspec
|
134
|
+
image: ruby:2.4
|
135
|
+
variables:
|
136
|
+
RSPEC_RAILS_VERSION: '5.2'
|
137
|
+
|
138
|
+
rspec-ruby2.5-rails5.2:
|
139
|
+
<<: *rspec
|
140
|
+
image: ruby:2.5
|
141
|
+
variables:
|
142
|
+
RSPEC_RAILS_VERSION: '5.2'
|
143
|
+
|
144
|
+
rspec-ruby2.6-rails5.2:
|
145
|
+
<<: *rspec
|
146
|
+
image: ruby:2.6
|
147
|
+
variables:
|
148
|
+
RSPEC_RAILS_VERSION: '5.2'
|
149
|
+
|
150
|
+
rspec-ruby2.5-rails6.0:
|
151
|
+
<<: *rspec
|
152
|
+
image: ruby:2.5
|
153
|
+
variables:
|
154
|
+
RSPEC_RAILS_VERSION: '6.0'
|
155
|
+
|
156
|
+
rspec-ruby2.6-rails6.0:
|
157
|
+
<<: *rspec
|
158
|
+
image: ruby:2.6
|
159
|
+
variables:
|
160
|
+
RSPEC_RAILS_VERSION: '6.0'
|
161
|
+
|
162
|
+
rubocop:
|
163
|
+
stage: codequality
|
164
|
+
image: ruby:2.6
|
165
|
+
script:
|
166
|
+
- gem install rubocop rubocop-performance rubocop-rails --no-document
|
167
|
+
- rubocop
|
168
|
+
|
169
|
+
dependency_scanning:
|
170
|
+
stage: security
|
171
|
+
dependencies:
|
172
|
+
- build
|
173
|
+
image: docker:stable
|
174
|
+
variables:
|
175
|
+
DOCKER_DRIVER: overlay2
|
176
|
+
allow_failure: true
|
177
|
+
services:
|
178
|
+
- docker:stable-dind
|
179
|
+
script:
|
180
|
+
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
|
181
|
+
- docker run
|
182
|
+
--env DEP_SCAN_DISABLE_REMOTE_CHECKS="${DEP_SCAN_DISABLE_REMOTE_CHECKS:-false}"
|
183
|
+
--volume "$PWD:/code"
|
184
|
+
--volume /var/run/docker.sock:/var/run/docker.sock
|
185
|
+
"registry.gitlab.com/gitlab-org/security-products/dependency-scanning:$SP_VERSION" /code
|
186
|
+
artifacts:
|
187
|
+
paths:
|
188
|
+
- gl-dependency-scanning-report.json
|
data/.rubocop.yml
CHANGED
@@ -1,8 +1,16 @@
|
|
1
|
+
require:
|
2
|
+
- rubocop-performance
|
3
|
+
- rubocop-rails
|
4
|
+
|
1
5
|
AllCops:
|
6
|
+
TargetRubyVersion: 2.4
|
2
7
|
Exclude:
|
3
8
|
- 'spec/**/*'
|
4
9
|
- '*.gemspec'
|
5
|
-
|
10
|
+
|
11
|
+
Layout/AlignHash:
|
12
|
+
EnforcedHashRocketStyle: table
|
13
|
+
EnforcedColonStyle: table
|
6
14
|
|
7
15
|
LineLength:
|
8
16
|
Max: 120
|
data/CHANGELOG.md
CHANGED
@@ -1,13 +1,27 @@
|
|
1
|
-
#
|
1
|
+
# Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
2
3
|
|
3
|
-
|
4
|
-
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
|
+
|
7
|
+
## [Unreleased]
|
8
|
+
|
9
|
+
## [0.2.0] - 2019-08-22
|
10
|
+
### Added
|
11
|
+
- Support for Rails 6.0
|
12
|
+
### Changed
|
13
|
+
- Add magic comments for frozen string literals to all files
|
14
|
+
- Update rubocop settings
|
15
|
+
- Use rubocop-performance and rubocop-rails plugins
|
16
|
+
|
17
|
+
## [0.1.2] - 2017-04-29
|
18
|
+
### Changed
|
5
19
|
- Rails 5.1 compatibility
|
6
20
|
|
7
|
-
## 0.1.1
|
8
|
-
###
|
21
|
+
## [0.1.1] - 2016-09-16
|
22
|
+
### Changed
|
9
23
|
- Rails 5.0 compatibility
|
10
24
|
|
11
|
-
## 0.1.0
|
12
|
-
###
|
25
|
+
## [0.1.0] - 2015-08-13
|
26
|
+
### Changed
|
13
27
|
- Allow to disable/enable logger
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,3 @@
|
|
1
|
-
[](https://rubygems.org/gems/logged)
|
2
|
-
[](https://gemnasium.com/ydkn/logged)
|
3
|
-
[](https://travis-ci.org/ydkn/logged)
|
4
|
-
[](https://codeclimate.com/github/ydkn/logged)
|
5
|
-
|
6
1
|
# logged: configurable Rails logging
|
7
2
|
|
8
3
|
Logged tries to make managing logging with Rails easier.
|
@@ -120,11 +115,3 @@ Rails.application.configure do
|
|
120
115
|
config.logged.active_record.disable_rails_logging = true
|
121
116
|
end
|
122
117
|
```
|
123
|
-
|
124
|
-
## Contributing
|
125
|
-
|
126
|
-
1. Fork it ( https://github.com/ydkn/logged/fork )
|
127
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
128
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
129
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
130
|
-
5. Create a new Pull Request
|
data/Rakefile
CHANGED
data/lib/logged.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'logged/version'
|
2
4
|
require 'logged/level_conversion'
|
3
5
|
require 'logged/logger'
|
@@ -16,7 +18,7 @@ module Logged
|
|
16
18
|
extend Logged::Subscriptions
|
17
19
|
|
18
20
|
# special keys which not represent a component
|
19
|
-
CONFIG_KEYS = Configuration::DEFAULT_VALUES.keys + [
|
21
|
+
CONFIG_KEYS = Configuration::DEFAULT_VALUES.keys + %i[loggers disable_rails_logging]
|
20
22
|
|
21
23
|
mattr_accessor :app, :config
|
22
24
|
|
@@ -61,7 +63,7 @@ module Logged
|
|
61
63
|
|
62
64
|
@component_loggers[key] = Logger.new(loggers, component, formatter)
|
63
65
|
end
|
64
|
-
|
66
|
+
alias [] logger_by_component
|
65
67
|
|
66
68
|
# loggers for component
|
67
69
|
def loggers_for(component)
|
data/lib/logged/configuration.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'active_support/ordered_options'
|
2
4
|
|
3
5
|
module Logged
|
@@ -12,17 +14,17 @@ module Logged
|
|
12
14
|
tags: -> { [] },
|
13
15
|
custom_ignore: nil,
|
14
16
|
custom_data: nil
|
15
|
-
}
|
17
|
+
}.freeze
|
16
18
|
|
17
19
|
def self.init_default_options(config, ignore_defaults = [])
|
18
20
|
DEFAULT_VALUES.each do |key, value|
|
19
21
|
next if ignore_defaults.include?(key)
|
20
22
|
|
21
|
-
if value.is_a?(Proc)
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
config[key] = if value.is_a?(Proc)
|
24
|
+
value.call
|
25
|
+
else
|
26
|
+
value
|
27
|
+
end
|
26
28
|
end
|
27
29
|
end
|
28
30
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'logged/formatter/base'
|
2
4
|
require 'logged/formatter/key_value'
|
3
5
|
|
@@ -23,7 +25,7 @@ module Logged
|
|
23
25
|
def load_dependencies
|
24
26
|
require 'logstash-event'
|
25
27
|
rescue LoadError
|
26
|
-
|
28
|
+
warn('You need to install the logstash-event gem to use the logstash formatter.')
|
27
29
|
raise
|
28
30
|
end
|
29
31
|
end
|
data/lib/logged/formatter/raw.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'uri'
|
2
4
|
require 'logged/log_subscriber/base'
|
3
5
|
|
@@ -10,17 +12,7 @@ module Logged
|
|
10
12
|
def process_action(event)
|
11
13
|
return if ignore?(event, :info)
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
-
data = {
|
16
|
-
event: event.name
|
17
|
-
}
|
18
|
-
|
19
|
-
data.merge!(extract_request(payload))
|
20
|
-
data.merge!(cached_event_data)
|
21
|
-
data.merge!(extract_path(payload))
|
22
|
-
data.merge!(extract_status(payload))
|
23
|
-
data.merge!(extract_runtimes(payload))
|
15
|
+
data = process_action_data(event)
|
24
16
|
|
25
17
|
data[:duration] = event.duration.to_f.round(2)
|
26
18
|
|
@@ -75,7 +67,7 @@ module Logged
|
|
75
67
|
|
76
68
|
{
|
77
69
|
view_runtime: view_runtime,
|
78
|
-
db_runtime:
|
70
|
+
db_runtime: db_runtime
|
79
71
|
}.reject { |_k, v| v.blank? }
|
80
72
|
end
|
81
73
|
|
@@ -91,6 +83,22 @@ module Logged
|
|
91
83
|
filter: filter
|
92
84
|
}.reject { |_k, v| v.blank? }
|
93
85
|
end
|
86
|
+
|
87
|
+
def process_action_data(event)
|
88
|
+
data = {
|
89
|
+
event: event.name
|
90
|
+
}
|
91
|
+
|
92
|
+
payload = event.payload
|
93
|
+
|
94
|
+
data.merge!(extract_request(payload))
|
95
|
+
data.merge!(cached_event_data)
|
96
|
+
data.merge!(extract_path(payload))
|
97
|
+
data.merge!(extract_status(payload))
|
98
|
+
data.merge!(extract_runtimes(payload))
|
99
|
+
|
100
|
+
data
|
101
|
+
end
|
94
102
|
end
|
95
103
|
end
|
96
104
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'logged/log_subscriber/base'
|
2
4
|
|
3
5
|
module Logged
|
@@ -49,19 +51,31 @@ module Logged
|
|
49
51
|
private
|
50
52
|
|
51
53
|
def extract_mail_deliver(payload)
|
52
|
-
data =
|
53
|
-
mailer: (payload[:mailer] || Thread.current[:logged_action_mailer_process_mailer]),
|
54
|
-
action: (payload[:action] || Thread.current[:logged_action_mailer_process_action]),
|
55
|
-
from: Array(payload[:from]).join(', '),
|
56
|
-
to: Array(payload[:to]).join(', '),
|
57
|
-
bcc: Array(payload[:bcc]).join(', ')
|
58
|
-
}
|
54
|
+
data = mail_deliver_data(payload)
|
59
55
|
|
60
56
|
Thread.current[:logged_action_mailer_process_mailer] = nil
|
61
57
|
Thread.current[:logged_action_mailer_process_action] = nil
|
62
58
|
|
63
59
|
data
|
64
60
|
end
|
61
|
+
|
62
|
+
def mail_deliver_data(payload)
|
63
|
+
{
|
64
|
+
mailer: mail_deliver_data_thread_fallback(payload, :mailer),
|
65
|
+
action: mail_deliver_data_thread_fallback(payload, :action),
|
66
|
+
from: mail_deliver_data_array(payload, :from),
|
67
|
+
to: mail_deliver_data_array(payload, :to),
|
68
|
+
bcc: mail_deliver_data_array(payload, :bcc)
|
69
|
+
}
|
70
|
+
end
|
71
|
+
|
72
|
+
def mail_deliver_data_thread_fallback(payload, key)
|
73
|
+
payload[key] || Thread.current["logged_action_mailer_process_#{key}".to_sym]
|
74
|
+
end
|
75
|
+
|
76
|
+
def mail_deliver_data_array(payload, key)
|
77
|
+
Array(payload[key]).join(', ')
|
78
|
+
end
|
65
79
|
end
|
66
80
|
end
|
67
81
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'action_view/log_subscriber'
|
2
4
|
require 'logged/log_subscriber/base'
|
3
5
|
|
@@ -21,8 +23,8 @@ module Logged
|
|
21
23
|
|
22
24
|
debug(event, data)
|
23
25
|
end
|
24
|
-
|
25
|
-
|
26
|
+
alias render_partial render_template
|
27
|
+
alias render_collection render_template
|
26
28
|
|
27
29
|
protected
|
28
30
|
|
@@ -35,7 +37,7 @@ module Logged
|
|
35
37
|
end
|
36
38
|
|
37
39
|
def rails_root
|
38
|
-
@
|
40
|
+
@rails_root ||= "#{::Rails.root}/"
|
39
41
|
end
|
40
42
|
end
|
41
43
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'active_record/log_subscriber'
|
2
4
|
require 'logged/log_subscriber/base'
|
3
5
|
|
@@ -6,7 +8,7 @@ module Logged
|
|
6
8
|
# Log subscriber for ActiveRecord events
|
7
9
|
class ActiveRecord < Base
|
8
10
|
# This query types will be ignored
|
9
|
-
IGNORE_PAYLOAD_NAMES = %w
|
11
|
+
IGNORE_PAYLOAD_NAMES = %w[SCHEMA EXPLAIN].freeze
|
10
12
|
|
11
13
|
component :active_record
|
12
14
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'active_support/log_subscriber'
|
2
4
|
|
3
5
|
module Logged
|
@@ -16,7 +18,7 @@ module Logged
|
|
16
18
|
|
17
19
|
private
|
18
20
|
|
19
|
-
%w
|
21
|
+
%w[info debug warn error fatal unknown].each do |level|
|
20
22
|
class_eval <<-METHOD, __FILE__, __LINE__ + 1
|
21
23
|
def #{level}(event, progname = nil, &block)
|
22
24
|
return unless logger
|
data/lib/logged/logger.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'logger'
|
2
4
|
require 'logged/tagged_logging'
|
3
5
|
|
@@ -7,6 +9,7 @@ module Logged
|
|
7
9
|
include TaggedLogging
|
8
10
|
|
9
11
|
attr_reader :loggers, :component
|
12
|
+
attr_writer :enabled
|
10
13
|
|
11
14
|
def initialize(loggers, component, formatter)
|
12
15
|
@loggers = loggers
|
@@ -33,9 +36,9 @@ module Logged
|
|
33
36
|
add_to_logger(level, event, data, logger, options)
|
34
37
|
end
|
35
38
|
end
|
36
|
-
|
39
|
+
alias log add
|
37
40
|
|
38
|
-
%w
|
41
|
+
%w[info debug warn error fatal unknown].each do |level|
|
39
42
|
class_eval <<-METHOD, __FILE__, __LINE__ + 1
|
40
43
|
def #{level}?
|
41
44
|
@loggers.keys.any? { |l| l.#{level}? }
|
@@ -63,10 +66,6 @@ module Logged
|
|
63
66
|
@enabled
|
64
67
|
end
|
65
68
|
|
66
|
-
def enabled=(enable)
|
67
|
-
@enabled = !!enable
|
68
|
-
end
|
69
|
-
|
70
69
|
def enable!
|
71
70
|
self.enabled = true
|
72
71
|
end
|
data/lib/logged/rack/logger.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'active_support'
|
2
4
|
require 'action_dispatch'
|
3
5
|
|
@@ -14,7 +16,7 @@ module Logged
|
|
14
16
|
|
15
17
|
request = ActionDispatch::Request.new(env)
|
16
18
|
|
17
|
-
if loggers.
|
19
|
+
if !loggers.empty?
|
18
20
|
loggers_tagged(loggers, request) { @app.call(env) }
|
19
21
|
else
|
20
22
|
@app.call(env)
|
@@ -33,10 +35,10 @@ module Logged
|
|
33
35
|
logger = loggers.shift
|
34
36
|
tags = tags_for_component(logger.component, request)
|
35
37
|
|
36
|
-
if loggers.
|
38
|
+
if !loggers.empty?
|
37
39
|
tagged_block(logger, tags) { loggers_tagged(loggers, request, &block) }
|
38
40
|
else
|
39
|
-
tagged_block(logger, tags) {
|
41
|
+
tagged_block(logger, tags) { yield }
|
40
42
|
end
|
41
43
|
end
|
42
44
|
|
data/lib/logged/railtie.rb
CHANGED
data/lib/logged/subscriptions.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Logged
|
2
4
|
# Railtie for logged
|
3
5
|
module Subscriptions
|
@@ -31,9 +33,7 @@ module Logged
|
|
31
33
|
|
32
34
|
events.each do |event|
|
33
35
|
ActiveSupport::Notifications.notifier.listeners_for("#{event}.#{component}").each do |listener|
|
34
|
-
if listener.instance_variable_get('@delegate') == subscriber
|
35
|
-
ActiveSupport::Notifications.unsubscribe listener
|
36
|
-
end
|
36
|
+
ActiveSupport::Notifications.unsubscribe listener if listener.instance_variable_get('@delegate') == subscriber
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
data/lib/logged/version.rb
CHANGED
data/logged.gemspec
CHANGED
@@ -1,17 +1,19 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
2
4
|
lib = File.expand_path('../lib', __FILE__)
|
3
5
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
6
|
require 'logged/version'
|
5
7
|
|
6
8
|
Gem::Specification.new do |spec|
|
7
|
-
rails_version = '>= 4.0', '< 6.
|
9
|
+
rails_version = '>= 4.0', '< 6.1'
|
8
10
|
|
9
11
|
spec.name = 'logged'
|
10
12
|
spec.version = Logged::VERSION
|
11
13
|
spec.authors = ['Florian Schwab']
|
12
14
|
spec.email = ['me@ydkn.de']
|
13
|
-
spec.summary =
|
14
|
-
spec.homepage = 'https://
|
15
|
+
spec.summary = 'Better logging for rails'
|
16
|
+
spec.homepage = 'https://gitlab.com/ydkn/logged'
|
15
17
|
spec.license = 'MIT'
|
16
18
|
|
17
19
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -19,9 +21,12 @@ Gem::Specification.new do |spec|
|
|
19
21
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
22
|
spec.require_paths = ['lib']
|
21
23
|
|
22
|
-
spec.add_development_dependency 'bundler'
|
23
|
-
spec.add_development_dependency 'rake'
|
24
|
-
spec.add_development_dependency 'rspec'
|
24
|
+
spec.add_development_dependency 'bundler'
|
25
|
+
spec.add_development_dependency 'rake'
|
26
|
+
spec.add_development_dependency 'rspec'
|
27
|
+
spec.add_development_dependency 'rubocop'
|
28
|
+
spec.add_development_dependency 'rubocop-performance'
|
29
|
+
spec.add_development_dependency 'rubocop-rails'
|
25
30
|
spec.add_development_dependency 'rails', rails_version
|
26
31
|
spec.add_development_dependency 'actionpack', rails_version
|
27
32
|
spec.add_development_dependency 'actionview', rails_version
|
data/spec/Gemfile
ADDED
metadata
CHANGED
@@ -1,57 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logged
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Florian Schwab
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-08-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rubocop
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
61
|
+
version: '0'
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
|
-
- - "
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rubocop-performance
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rubocop-rails
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
53
95
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
96
|
+
version: '0'
|
55
97
|
- !ruby/object:Gem::Dependency
|
56
98
|
name: rails
|
57
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -61,7 +103,7 @@ dependencies:
|
|
61
103
|
version: '4.0'
|
62
104
|
- - "<"
|
63
105
|
- !ruby/object:Gem::Version
|
64
|
-
version: '6.
|
106
|
+
version: '6.1'
|
65
107
|
type: :development
|
66
108
|
prerelease: false
|
67
109
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -71,7 +113,7 @@ dependencies:
|
|
71
113
|
version: '4.0'
|
72
114
|
- - "<"
|
73
115
|
- !ruby/object:Gem::Version
|
74
|
-
version: '6.
|
116
|
+
version: '6.1'
|
75
117
|
- !ruby/object:Gem::Dependency
|
76
118
|
name: actionpack
|
77
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,7 +123,7 @@ dependencies:
|
|
81
123
|
version: '4.0'
|
82
124
|
- - "<"
|
83
125
|
- !ruby/object:Gem::Version
|
84
|
-
version: '6.
|
126
|
+
version: '6.1'
|
85
127
|
type: :development
|
86
128
|
prerelease: false
|
87
129
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -91,7 +133,7 @@ dependencies:
|
|
91
133
|
version: '4.0'
|
92
134
|
- - "<"
|
93
135
|
- !ruby/object:Gem::Version
|
94
|
-
version: '6.
|
136
|
+
version: '6.1'
|
95
137
|
- !ruby/object:Gem::Dependency
|
96
138
|
name: actionview
|
97
139
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,7 +143,7 @@ dependencies:
|
|
101
143
|
version: '4.0'
|
102
144
|
- - "<"
|
103
145
|
- !ruby/object:Gem::Version
|
104
|
-
version: '6.
|
146
|
+
version: '6.1'
|
105
147
|
type: :development
|
106
148
|
prerelease: false
|
107
149
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -111,7 +153,7 @@ dependencies:
|
|
111
153
|
version: '4.0'
|
112
154
|
- - "<"
|
113
155
|
- !ruby/object:Gem::Version
|
114
|
-
version: '6.
|
156
|
+
version: '6.1'
|
115
157
|
- !ruby/object:Gem::Dependency
|
116
158
|
name: actionmailer
|
117
159
|
requirement: !ruby/object:Gem::Requirement
|
@@ -121,7 +163,7 @@ dependencies:
|
|
121
163
|
version: '4.0'
|
122
164
|
- - "<"
|
123
165
|
- !ruby/object:Gem::Version
|
124
|
-
version: '6.
|
166
|
+
version: '6.1'
|
125
167
|
type: :development
|
126
168
|
prerelease: false
|
127
169
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -131,7 +173,7 @@ dependencies:
|
|
131
173
|
version: '4.0'
|
132
174
|
- - "<"
|
133
175
|
- !ruby/object:Gem::Version
|
134
|
-
version: '6.
|
176
|
+
version: '6.1'
|
135
177
|
- !ruby/object:Gem::Dependency
|
136
178
|
name: activerecord
|
137
179
|
requirement: !ruby/object:Gem::Requirement
|
@@ -141,7 +183,7 @@ dependencies:
|
|
141
183
|
version: '4.0'
|
142
184
|
- - "<"
|
143
185
|
- !ruby/object:Gem::Version
|
144
|
-
version: '6.
|
186
|
+
version: '6.1'
|
145
187
|
type: :development
|
146
188
|
prerelease: false
|
147
189
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -151,7 +193,7 @@ dependencies:
|
|
151
193
|
version: '4.0'
|
152
194
|
- - "<"
|
153
195
|
- !ruby/object:Gem::Version
|
154
|
-
version: '6.
|
196
|
+
version: '6.1'
|
155
197
|
- !ruby/object:Gem::Dependency
|
156
198
|
name: railties
|
157
199
|
requirement: !ruby/object:Gem::Requirement
|
@@ -161,7 +203,7 @@ dependencies:
|
|
161
203
|
version: '4.0'
|
162
204
|
- - "<"
|
163
205
|
- !ruby/object:Gem::Version
|
164
|
-
version: '6.
|
206
|
+
version: '6.1'
|
165
207
|
type: :runtime
|
166
208
|
prerelease: false
|
167
209
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -171,7 +213,7 @@ dependencies:
|
|
171
213
|
version: '4.0'
|
172
214
|
- - "<"
|
173
215
|
- !ruby/object:Gem::Version
|
174
|
-
version: '6.
|
216
|
+
version: '6.1'
|
175
217
|
description:
|
176
218
|
email:
|
177
219
|
- me@ydkn.de
|
@@ -180,9 +222,9 @@ extensions: []
|
|
180
222
|
extra_rdoc_files: []
|
181
223
|
files:
|
182
224
|
- ".gitignore"
|
225
|
+
- ".gitlab-ci.yml"
|
183
226
|
- ".rspec"
|
184
227
|
- ".rubocop.yml"
|
185
|
-
- ".travis.yml"
|
186
228
|
- CHANGELOG.md
|
187
229
|
- Gemfile
|
188
230
|
- LICENSE.txt
|
@@ -209,6 +251,7 @@ files:
|
|
209
251
|
- lib/logged/tagged_logging.rb
|
210
252
|
- lib/logged/version.rb
|
211
253
|
- logged.gemspec
|
254
|
+
- spec/Gemfile
|
212
255
|
- spec/config_spec.rb
|
213
256
|
- spec/formatter/json_spec.rb
|
214
257
|
- spec/formatter/key_value_spec.rb
|
@@ -216,7 +259,7 @@ files:
|
|
216
259
|
- spec/formatter/single_key_spec.rb
|
217
260
|
- spec/removes_rails_log_subscribers_spec.rb
|
218
261
|
- spec/spec_helper.rb
|
219
|
-
homepage: https://
|
262
|
+
homepage: https://gitlab.com/ydkn/logged
|
220
263
|
licenses:
|
221
264
|
- MIT
|
222
265
|
metadata: {}
|
@@ -235,12 +278,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
235
278
|
- !ruby/object:Gem::Version
|
236
279
|
version: '0'
|
237
280
|
requirements: []
|
238
|
-
|
239
|
-
rubygems_version: 2.6.11
|
281
|
+
rubygems_version: 3.0.3
|
240
282
|
signing_key:
|
241
283
|
specification_version: 4
|
242
284
|
summary: Better logging for rails
|
243
285
|
test_files:
|
286
|
+
- spec/Gemfile
|
244
287
|
- spec/config_spec.rb
|
245
288
|
- spec/formatter/json_spec.rb
|
246
289
|
- spec/formatter/key_value_spec.rb
|