logged 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
[![Gem Version](https://img.shields.io/gem/v/logged.svg)](https://rubygems.org/gems/logged)
|
2
|
-
[![Dependencies](https://img.shields.io/gemnasium/ydkn/logged.svg)](https://gemnasium.com/ydkn/logged)
|
3
|
-
[![Travis CI](https://img.shields.io/travis/ydkn/logged.svg)](https://travis-ci.org/ydkn/logged)
|
4
|
-
[![Code Climate](https://img.shields.io/codeclimate/github/ydkn/logged.svg)](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
|