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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8a3b74510253681a9999278535633d1297f065418722947adab13556809eff9a
4
- data.tar.gz: ea8e280d74e25f055ccb30fea6c5adbe87154e5b67e2ded25a2b0c87365f5bea
3
+ metadata.gz: 9e38e81bacc78dc2cab4f5883bda17d8046982278eeff8f26b24e083439de8e7
4
+ data.tar.gz: 1043a629d3441cd7058b5be4545bae2abb06ec094d68fcfaa9e9604068f1e044
5
5
  SHA512:
6
- metadata.gz: ffa0e0f617c0a8725b06ab70e44735206c7e88001912ccaa2b150e92ce27877af0fa4cc1cbfecaa96c1b1ce1cf433c98184a106233ec9a75cc5ffaffb188e782
7
- data.tar.gz: 3f5758087a70913f9aeb4bd52c8fbd6177e316712cd8e70d41eabd3f55247964e4cc73d4174b2c238316daa3c732dbaa2ae6ebfb9eda27aff39a2c144864f497
6
+ metadata.gz: 53f1b8eec5fcbb81457253943e1367bd3393e81955971e1a17ceee61df5594b2072407a51ca903c7e70605eff30d5855f55634251a2874a8217db0b2a46248ee
7
+ data.tar.gz: 15446e3ae903c6a5506e2af6a6f438da7ead8087456d89cf504ddfa4c4471f0218b6d9f57a099f443c78fc80192c0f56b81ea1b669d46b5c768cfc4c67e481b1
@@ -0,0 +1 @@
1
+ github: [davidwinter]
@@ -0,0 +1,6 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "bundler"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "daily"
@@ -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
- Metrics/LineLength:
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
- minimum_coverage 100
3
- if ENV['CI']
4
- require 'codecov'
5
- SimpleCov.formatter = SimpleCov::Formatter::Codecov
6
- end
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
- [![CircleCI](https://circleci.com/gh/madetech/sensible_logging.svg?style=svg)](https://circleci.com/gh/madetech/sensible_logging)
4
- [![codecov](https://codecov.io/gh/madetech/sensible_logging/branch/master/graph/badge.svg)](https://codecov.io/gh/madetech/sensible_logging)
5
- [![Gem Version](https://badge.fury.io/rb/sensible_logging.png)](http://badge.fury.io/rb/sensible_logging)
3
+ [![test](https://github.com/davidwinter/sensible_logging/workflows/test/badge.svg)](https://github.com/davidwinter/sensible_logging/actions?query=workflow%3Atest) [![Gem](https://img.shields.io/gem/dtv/sensible_logging)](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(STDOUT)
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(STDOUT)`
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), [Mark Sta Ana](https://github.com/booyaa) & [Anthony King](https://github.com/cybojenix)
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
@@ -10,7 +10,7 @@ class App < Sinatra::Base
10
10
  register Sinatra::SensibleLogging
11
11
 
12
12
  sensible_logging(
13
- logger: Logger.new(STDOUT),
13
+ logger: Logger.new($stdout),
14
14
  log_tags: [->(req) { [req.port] }],
15
15
  exclude_params: ['two']
16
16
  )
@@ -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(STDOUT),
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/ParameterLists
9
+ def initialize( # rubocop:disable Metrics/MethodLength
10
10
  app,
11
- logger: Logger.new(STDOUT),
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
- logger = setup_severity_tag(logger) if include_log_severity
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
- @logger = ActiveSupport::TaggedLogging.new(logger)
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)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SensibleLogging
4
- VERSION = '0.4.1'
4
+ VERSION = '0.4.2'
5
5
  end
@@ -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 = ['sre@madetech.com']
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/madetech/sensible_logging'
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.1'
28
+ spec.add_development_dependency 'bundler', '~> 2.2.0'
27
29
  spec.add_development_dependency 'codecov'
28
- spec.add_development_dependency 'pry', '~> 0.12.2'
29
- spec.add_development_dependency 'puma', '~> 3.12'
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', '~> 0.65.0'
33
- spec.add_development_dependency 'rubocop-rspec', '~> 1.32.0'
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.1
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: 2019-05-13 00:00:00.000000000 Z
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.1
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.1
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.12.2
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.12.2
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.12'
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.12'
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: 0.65.0
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: 0.65.0
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: 1.32.0
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: 1.32.0
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
- - sre@madetech.com
185
+ - i@djw.me
186
186
  executables: []
187
187
  extensions: []
188
188
  extra_rdoc_files: []
189
189
  files:
190
- - ".circleci/config.yml"
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/madetech/sensible_logging
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: '0'
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.0.1
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