sensible_logging 0.4.1 → 0.4.2
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/.github/FUNDING.yml +1 -0
- data/.github/dependabot.yml +6 -0
- data/.github/workflows/test.yml +27 -0
- data/.rubocop.yml +8 -1
- data/.simplecov +7 -5
- data/README.md +20 -14
- data/examples/app.rb +1 -1
- data/lib/sensible_logging.rb +1 -1
- data/lib/sensible_logging/middlewares/tagged_logger.rb +14 -10
- data/lib/sensible_logging/version.rb +1 -1
- data/sensible_logging.gemspec +9 -7
- metadata +23 -21
- data/.circleci/config.yml +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e38e81bacc78dc2cab4f5883bda17d8046982278eeff8f26b24e083439de8e7
|
4
|
+
data.tar.gz: 1043a629d3441cd7058b5be4545bae2abb06ec094d68fcfaa9e9604068f1e044
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53f1b8eec5fcbb81457253943e1367bd3393e81955971e1a17ceee61df5594b2072407a51ca903c7e70605eff30d5855f55634251a2874a8217db0b2a46248ee
|
7
|
+
data.tar.gz: 15446e3ae903c6a5506e2af6a6f438da7ead8087456d89cf504ddfa4c4471f0218b6d9f57a099f443c78fc80192c0f56b81ea1b669d46b5c768cfc4c67e481b1
|
data/.github/FUNDING.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
github: [davidwinter]
|
@@ -0,0 +1,27 @@
|
|
1
|
+
name: test
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ main ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ main ]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
test:
|
11
|
+
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
strategy:
|
14
|
+
matrix:
|
15
|
+
ruby-version: ['2.6', '2.7', '3.0']
|
16
|
+
|
17
|
+
steps:
|
18
|
+
- uses: actions/checkout@v2
|
19
|
+
- name: Set up Ruby
|
20
|
+
uses: ruby/setup-ruby@v1
|
21
|
+
with:
|
22
|
+
ruby-version: ${{ matrix.ruby-version }}
|
23
|
+
bundler-cache: true
|
24
|
+
- name: Run tests
|
25
|
+
run: bundle exec rspec --backtrace
|
26
|
+
- name: Run linting
|
27
|
+
run: bundle exec rubocop
|
data/.rubocop.yml
CHANGED
@@ -1,8 +1,15 @@
|
|
1
|
+
AllCops:
|
2
|
+
NewCops: enable
|
3
|
+
SuggestExtensions: false
|
4
|
+
|
1
5
|
require: rubocop-rspec
|
2
6
|
|
3
|
-
|
7
|
+
Layout/LineLength:
|
4
8
|
Max: 120
|
5
9
|
|
10
|
+
RSpec/MultipleMemoizedHelpers:
|
11
|
+
Enabled: false
|
12
|
+
|
6
13
|
Metrics/BlockLength:
|
7
14
|
Exclude:
|
8
15
|
- 'spec/**/*.rb'
|
data/.simplecov
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
SimpleCov.start do
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
minimum_coverage 100
|
5
|
+
if ENV['CI']
|
6
|
+
require 'codecov'
|
7
|
+
SimpleCov.formatter = SimpleCov::Formatter::Codecov
|
8
|
+
end
|
7
9
|
end
|
data/README.md
CHANGED
@@ -1,10 +1,8 @@
|
|
1
1
|
# Sensible Logging
|
2
2
|
|
3
|
-
[](https://codecov.io/gh/madetech/sensible_logging)
|
5
|
-
[](http://badge.fury.io/rb/sensible_logging)
|
3
|
+
[](https://github.com/davidwinter/sensible_logging/actions?query=workflow%3Atest) [](https://rubygems.org/gems/sensible_logging)
|
6
4
|
|
7
|
-
A logging extension with sensible defaults for Sinatra apps.
|
5
|
+
> A logging extension with sensible defaults for Sinatra apps.
|
8
6
|
|
9
7
|
## Features
|
10
8
|
|
@@ -49,7 +47,7 @@ A logging extension with sensible defaults for Sinatra apps.
|
|
49
47
|
|
50
48
|
# Initialise Sensible Logging to add our middlewares.
|
51
49
|
sensible_logging(
|
52
|
-
logger: Logger.new(
|
50
|
+
logger: Logger.new($stdout)
|
53
51
|
)
|
54
52
|
|
55
53
|
# Configure the log level for different environments
|
@@ -82,22 +80,22 @@ A logging extension with sensible defaults for Sinatra apps.
|
|
82
80
|
|
83
81
|
There are a number of options that you can pass into `sensible_logging`:
|
84
82
|
|
85
|
-
* `logger`: The logging object.
|
86
|
-
**Default**: `Logger.new(
|
87
|
-
* `use_default_log_tags`: Includes the subdomain, `RACK_ENV` and unique request ID in the log tags.
|
83
|
+
* `logger`: The logging object.
|
84
|
+
**Default**: `Logger.new($stdout)`
|
85
|
+
* `use_default_log_tags`: Includes the subdomain, `RACK_ENV` and unique request ID in the log tags.
|
88
86
|
**Default**: `true`
|
89
|
-
* `tld_length`: For example, if your domain was `www.google.com` this would result in `www` being tagged as your subdomain. If your domain is `www.google.co.uk`, set this value to `2` to correctly identify the subdomain as `www` rather than `www.google`.
|
87
|
+
* `tld_length`: For example, if your domain was `www.google.com` this would result in `www` being tagged as your subdomain. If your domain is `www.google.co.uk`, set this value to `2` to correctly identify the subdomain as `www` rather than `www.google`.
|
90
88
|
**Default**: `1`.
|
91
|
-
* `log_tags`: An array of additional log tags to include. This can be strings, or you can include a `lambda` that will be evaluated. The `lambda` is passed a Rack `Request` object, and it must return an array of string values.
|
89
|
+
* `log_tags`: An array of additional log tags to include. This can be strings, or you can include a `lambda` that will be evaluated. The `lambda` is passed a Rack `Request` object, and it must return an array of string values.
|
92
90
|
**Default**: `[]`
|
93
|
-
* `exclude_params`: An array of parameter names to be excluded from `GET` requests. By default, `GET` parameters are outputted in logs. If for example with the request `http://google.com/?one=dog&two=cat` you didn't want the `one` logged, you would set `exclude_params` to be `['one']`
|
91
|
+
* `exclude_params`: An array of parameter names to be excluded from `GET` requests. By default, `GET` parameters are outputted in logs. If for example with the request `http://google.com/?one=dog&two=cat` you didn't want the `one` logged, you would set `exclude_params` to be `['one']`
|
94
92
|
**Default**: `[]`
|
95
|
-
* `include_log_severity`: Includes the log severity in the tagged output, such as `INFO`, `DEBUG` etc
|
93
|
+
* `include_log_severity`: Includes the log severity in the tagged output, such as `INFO`, `DEBUG` etc
|
96
94
|
**Default**: `true`
|
97
95
|
|
98
96
|
Sensible Logger will also respect the following Sinatra settings:
|
99
97
|
|
100
|
-
* `log_level`: The level at which your logger object should respect logs. See above example.
|
98
|
+
* `log_level`: The level at which your logger object should respect logs. See above example.
|
101
99
|
**Default**: `Logger::DEBUG`
|
102
100
|
|
103
101
|
## Examples
|
@@ -131,9 +129,17 @@ To quote [lograge][link_lograge] (which was the inspiration for this library):
|
|
131
129
|
|
132
130
|
> The syntax is heavily inspired by the log output of the Heroku router. It doesn't include any timestamp by default, instead, it assumes you use a proper log formatter instead.
|
133
131
|
|
132
|
+
## Releasing
|
133
|
+
|
134
|
+
1. Update the version number `lib/sensible_logging/version.rb`
|
135
|
+
2. Create a git commit and tag with the new version number
|
136
|
+
3. Create a new PR with this change and once approved, merge to `main`
|
137
|
+
4. Create a new PR with changes in `main` to be merged into `stable` since the last release
|
138
|
+
5. Once approved and merged in, locally, run: `bundle exec rake release` which will build and push the new gem to Rubygems
|
139
|
+
|
134
140
|
## Authors
|
135
141
|
|
136
|
-
By [David Winter](https://github.com/davidwinter)
|
142
|
+
By [David Winter](https://github.com/davidwinter) with contributions from [Mark Sta Ana](https://github.com/booyaa) & [Anthony King](https://github.com/cybojenix)
|
137
143
|
|
138
144
|
## License
|
139
145
|
|
data/examples/app.rb
CHANGED
data/lib/sensible_logging.rb
CHANGED
@@ -21,7 +21,7 @@ module Sinatra
|
|
21
21
|
# Sensible logging library for Sinatra based Apps
|
22
22
|
module SensibleLogging
|
23
23
|
def sensible_logging( # rubocop:disable Metrics/MethodLength, Metrics/ParameterLists
|
24
|
-
logger: Logger.new(
|
24
|
+
logger: Logger.new($stdout),
|
25
25
|
log_tags: [],
|
26
26
|
use_default_log_tags: true,
|
27
27
|
exclude_params: [],
|
@@ -6,22 +6,26 @@ require_relative '../helpers/subdomain_parser'
|
|
6
6
|
|
7
7
|
# Allow custom tags to be captured
|
8
8
|
class TaggedLogger
|
9
|
-
def initialize( # rubocop:disable Metrics/
|
9
|
+
def initialize( # rubocop:disable Metrics/MethodLength
|
10
10
|
app,
|
11
|
-
|
12
|
-
tags: [],
|
13
|
-
use_default_tags: true,
|
14
|
-
tld_length: 1,
|
15
|
-
include_log_severity: true
|
11
|
+
options = {}
|
16
12
|
)
|
17
13
|
@app = app
|
18
14
|
|
19
|
-
|
15
|
+
options = {
|
16
|
+
logger: Logger.new($stdout),
|
17
|
+
tags: [],
|
18
|
+
use_default_tags: true,
|
19
|
+
tld_length: 1,
|
20
|
+
include_log_severity: true
|
21
|
+
}.merge(options)
|
20
22
|
|
21
|
-
|
23
|
+
options[:logger] = setup_severity_tag(options[:logger]) if options[:include_log_severity]
|
24
|
+
|
25
|
+
@logger = ActiveSupport::TaggedLogging.new(options[:logger])
|
22
26
|
@tags = []
|
23
|
-
@tags += default_tags(tld_length: tld_length) if use_default_tags
|
24
|
-
@tags += tags
|
27
|
+
@tags += default_tags(tld_length: options[:tld_length]) if options[:use_default_tags]
|
28
|
+
@tags += options[:tags]
|
25
29
|
end
|
26
30
|
|
27
31
|
def call(env)
|
data/sensible_logging.gemspec
CHANGED
@@ -8,29 +8,31 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.name = 'sensible_logging'
|
9
9
|
spec.version = SensibleLogging::VERSION
|
10
10
|
spec.authors = ['David Winter', 'Mark Sta Ana', 'Anthony King']
|
11
|
-
spec.email = ['
|
11
|
+
spec.email = ['i@djw.me']
|
12
12
|
|
13
13
|
spec.summary = 'Sensible logging defaults for your Sinatra app'
|
14
|
-
spec.homepage = 'https://github.com/
|
14
|
+
spec.homepage = 'https://github.com/davidwinter/sensible_logging'
|
15
15
|
spec.license = 'MIT'
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
18
18
|
f.match(%r{^(test|spec|features)/})
|
19
19
|
end
|
20
20
|
|
21
|
+
spec.required_ruby_version = '>= 2.6'
|
22
|
+
|
21
23
|
spec.require_paths = ['lib']
|
22
24
|
|
23
25
|
spec.add_runtime_dependency 'activesupport', '~> 5.2'
|
24
26
|
spec.add_runtime_dependency 'rack', '~> 2.0'
|
25
27
|
|
26
|
-
spec.add_development_dependency 'bundler', '~> 2.0
|
28
|
+
spec.add_development_dependency 'bundler', '~> 2.2.0'
|
27
29
|
spec.add_development_dependency 'codecov'
|
28
|
-
spec.add_development_dependency 'pry', '~> 0.
|
29
|
-
spec.add_development_dependency 'puma', '~> 3
|
30
|
+
spec.add_development_dependency 'pry', '~> 0.14.1'
|
31
|
+
spec.add_development_dependency 'puma', '~> 5.3'
|
30
32
|
spec.add_development_dependency 'rake', '~> 12.3'
|
31
33
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
32
|
-
spec.add_development_dependency 'rubocop', '~>
|
33
|
-
spec.add_development_dependency 'rubocop-rspec', '~>
|
34
|
+
spec.add_development_dependency 'rubocop', '~> 1.16.1'
|
35
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 2.4.0'
|
34
36
|
spec.add_development_dependency 'simplecov'
|
35
37
|
spec.add_development_dependency 'sinatra', '~> 2.0'
|
36
38
|
end
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensible_logging
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Winter
|
8
8
|
- Mark Sta Ana
|
9
9
|
- Anthony King
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2021-06-14 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -46,14 +46,14 @@ dependencies:
|
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 2.0
|
49
|
+
version: 2.2.0
|
50
50
|
type: :development
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 2.0
|
56
|
+
version: 2.2.0
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: codecov
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
@@ -74,28 +74,28 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - "~>"
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: 0.
|
77
|
+
version: 0.14.1
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
82
|
- - "~>"
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: 0.
|
84
|
+
version: 0.14.1
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: puma
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
89
|
- - "~>"
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: '3
|
91
|
+
version: '5.3'
|
92
92
|
type: :development
|
93
93
|
prerelease: false
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
96
|
- - "~>"
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
version: '3
|
98
|
+
version: '5.3'
|
99
99
|
- !ruby/object:Gem::Dependency
|
100
100
|
name: rake
|
101
101
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,28 +130,28 @@ dependencies:
|
|
130
130
|
requirements:
|
131
131
|
- - "~>"
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version:
|
133
|
+
version: 1.16.1
|
134
134
|
type: :development
|
135
135
|
prerelease: false
|
136
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
137
|
requirements:
|
138
138
|
- - "~>"
|
139
139
|
- !ruby/object:Gem::Version
|
140
|
-
version:
|
140
|
+
version: 1.16.1
|
141
141
|
- !ruby/object:Gem::Dependency
|
142
142
|
name: rubocop-rspec
|
143
143
|
requirement: !ruby/object:Gem::Requirement
|
144
144
|
requirements:
|
145
145
|
- - "~>"
|
146
146
|
- !ruby/object:Gem::Version
|
147
|
-
version:
|
147
|
+
version: 2.4.0
|
148
148
|
type: :development
|
149
149
|
prerelease: false
|
150
150
|
version_requirements: !ruby/object:Gem::Requirement
|
151
151
|
requirements:
|
152
152
|
- - "~>"
|
153
153
|
- !ruby/object:Gem::Version
|
154
|
-
version:
|
154
|
+
version: 2.4.0
|
155
155
|
- !ruby/object:Gem::Dependency
|
156
156
|
name: simplecov
|
157
157
|
requirement: !ruby/object:Gem::Requirement
|
@@ -180,14 +180,16 @@ dependencies:
|
|
180
180
|
- - "~>"
|
181
181
|
- !ruby/object:Gem::Version
|
182
182
|
version: '2.0'
|
183
|
-
description:
|
183
|
+
description:
|
184
184
|
email:
|
185
|
-
-
|
185
|
+
- i@djw.me
|
186
186
|
executables: []
|
187
187
|
extensions: []
|
188
188
|
extra_rdoc_files: []
|
189
189
|
files:
|
190
|
-
- ".
|
190
|
+
- ".github/FUNDING.yml"
|
191
|
+
- ".github/dependabot.yml"
|
192
|
+
- ".github/workflows/test.yml"
|
191
193
|
- ".gitignore"
|
192
194
|
- ".rspec"
|
193
195
|
- ".rubocop.yml"
|
@@ -207,11 +209,11 @@ files:
|
|
207
209
|
- lib/sensible_logging/middlewares/tagged_logger.rb
|
208
210
|
- lib/sensible_logging/version.rb
|
209
211
|
- sensible_logging.gemspec
|
210
|
-
homepage: https://github.com/
|
212
|
+
homepage: https://github.com/davidwinter/sensible_logging
|
211
213
|
licenses:
|
212
214
|
- MIT
|
213
215
|
metadata: {}
|
214
|
-
post_install_message:
|
216
|
+
post_install_message:
|
215
217
|
rdoc_options: []
|
216
218
|
require_paths:
|
217
219
|
- lib
|
@@ -219,15 +221,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
219
221
|
requirements:
|
220
222
|
- - ">="
|
221
223
|
- !ruby/object:Gem::Version
|
222
|
-
version: '
|
224
|
+
version: '2.6'
|
223
225
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
224
226
|
requirements:
|
225
227
|
- - ">="
|
226
228
|
- !ruby/object:Gem::Version
|
227
229
|
version: '0'
|
228
230
|
requirements: []
|
229
|
-
rubygems_version: 3.
|
230
|
-
signing_key:
|
231
|
+
rubygems_version: 3.2.15
|
232
|
+
signing_key:
|
231
233
|
specification_version: 4
|
232
234
|
summary: Sensible logging defaults for your Sinatra app
|
233
235
|
test_files: []
|
data/.circleci/config.yml
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
version: 2
|
2
|
-
jobs:
|
3
|
-
build_and_test:
|
4
|
-
docker:
|
5
|
-
- image: circleci/ruby:2.6.1
|
6
|
-
environment:
|
7
|
-
RACK_ENV: test
|
8
|
-
|
9
|
-
steps:
|
10
|
-
- checkout
|
11
|
-
|
12
|
-
- run: gem install bundler
|
13
|
-
- run: bundle install --jobs=4 --retry=3 --path vendor/bundle
|
14
|
-
|
15
|
-
- run: bundle exec rspec --backtrace
|
16
|
-
- run: bundle exec rubocop
|
17
|
-
|
18
|
-
workflows:
|
19
|
-
version: 2
|
20
|
-
test_and_deploy:
|
21
|
-
jobs:
|
22
|
-
- build_and_test
|