ezlog 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ad2b6dbcdd9a5f406ef62d7fb236b533f08b6b618ee471545838da63d9feaf45
4
- data.tar.gz: 3f731ee481f1d4a05ec02a4276a6e787c2f0c11110255021a2b2187c17a21938
3
+ metadata.gz: dbc2b416fa5e9ad9fc27808ed7466061d9598d7d72cfa954111fd649c0140bac
4
+ data.tar.gz: eeeeb620f0e1e621e6e87004fc4d1ea764eb1192e22ce20a71ba460ea705fc13
5
5
  SHA512:
6
- metadata.gz: 5702219d4387e9a628b83391b7f2f6a66b42413314969e48f60016e445d8a1ab328acaaca687f78452f67f92ebeadebf9d4b7951e3dc137b881ecd4f521a9404
7
- data.tar.gz: d2f5e226bff51fa7d821f238b7633c3ba9fa0e328423576b854b26e0405bbc54ab6bdbfdd9dfc63214d8aaf443ee9fed79f99dd2c36e07e7cbf46ed42d191a59
6
+ metadata.gz: 4b4c04947195d99f7570586ebd28e5f11206950076f9f2f0a55cdbc392afa1855db5c8fdec9e6f7cedbe8b5d57d50348b21cf965dbc0efc9323a7db1762fd81d
7
+ data.tar.gz: 67567839defa31877a6d5df9600835d89bd45ae485d50e633f0ca7e3fa4f3bc27a30700a64fdf3c816c6f27a70083fe97e36520f999e11a698e4600f5d9b23f9
@@ -1,3 +1,12 @@
1
+ ### 0.5.2 (2019-09-27)
2
+
3
+ [Full Changelog](https://github.com/emartech/ezlog/compare/v0.5.1...v0.5.2)
4
+
5
+ * Bug fixes
6
+ * Sidekiq logger now supports the Sidekiq 6 logger interface which includes the method `with_context`. This is
7
+ important because other gems (notably [sidekiq-unique-jobs](https://github.com/mhenrixon/sidekiq-unique-jobs))
8
+ depend on this method and might break if it's not present.
9
+
1
10
  ### 0.5.1 (2019-09-16)
2
11
 
3
12
  [Full Changelog](https://github.com/emartech/ezlog/compare/v0.5.0...v0.5.1)
data/README.md CHANGED
@@ -11,7 +11,7 @@ projects using any (or all) of the following libraries or frameworks:
11
11
  * [Sequel](https://sequel.jeremyevans.net/)
12
12
  * [Rack::Timeout](https://github.com/heroku/rack-timeout)
13
13
 
14
- It uses Tim Pease's wonderful [Logging](https://github.com/TwP/logging) gem for an all-purpose structured logging solution.
14
+ It uses Tim Pease's wonderful [Logging](https://github.com/TwP/logging) gem under the hood for an all-purpose structured logging solution.
15
15
 
16
16
  Ezlog's purpose is threefold:
17
17
  1. Make sure that our applications are logging in a concise and sensible manner; emitting no unnecessary "noise" but
@@ -21,7 +21,7 @@ Ezlog's purpose is threefold:
21
21
 
22
22
  ## Installation
23
23
 
24
- #### Rails
24
+ ### Rails
25
25
 
26
26
  Add this line to your application's Gemfile:
27
27
 
@@ -29,7 +29,17 @@ Add this line to your application's Gemfile:
29
29
  gem 'ezlog'
30
30
  ```
31
31
 
32
- That's it. Everything else is automatically configured.
32
+ Although Ezlog sets up sensible defaults for all logging configuration settings, it leaves you the option to override these
33
+ settings manually in the way you're used to; via [Rails](https://rubyonrails.org/)'s configuration mechanism. Unfortunately
34
+ the [Rails](https://rubyonrails.org/) new project generator automatically generates code for the production environment
35
+ configuration that overrides these settings.
36
+
37
+ For Ezlog to work properly, you also need to delete the logging configuration options in the
38
+ `config/environments/production.rb` generated file.
39
+
40
+ ### Non-Rails applications
41
+
42
+ At the moment Ezlog only support [Rails](https://rubyonrails.org/) apps. Non-Rails support is planned.
33
43
 
34
44
  ## What it does
35
45
 
@@ -37,6 +47,7 @@ That's it. Everything else is automatically configured.
37
47
  * Configures [Rails](https://rubyonrails.org/)'s logging
38
48
  * Configures [Sidekiq](https://github.com/mperham/sidekiq) logging
39
49
  * Configures [Rack::Timeout](https://github.com/heroku/rack-timeout) logging
50
+ * Provides support for adding context information to log messages
40
51
  * Provides testing support for [RSpec](https://rspec.info/)
41
52
 
42
53
  ### Initializes the Logging library
@@ -152,6 +163,37 @@ TestWorker.perform_async 42
152
163
  but it is way too verbose by default and all of its important messages (i.e. Timeout errors) are logged by the application
153
164
  as well. For this reason, Ezlog turns off [Rack::Timeout](https://github.com/heroku/rack-timeout) logging completely.
154
165
 
166
+ ### Provides support for adding context information to log messages
167
+
168
+ Ezlog provides two helper methods which can be used to add context information to log messages:
169
+
170
+ * `within_log_context(context)`: Starts a new log context initialized with `context` and executes the provided block
171
+ within that context. Once execution is finished, the log context is cleaned up and the previous context (if any) is
172
+ reinstated. In practice, this means that every time we log something (within the block), the log message will include
173
+ the information that's in the current context. This can be useful for storing request-specific information
174
+ (request ID, user ID, ...) in the log context early on (for example in a middleware) and not have to worry about
175
+ including it every time we want to log a message.
176
+
177
+ Example:
178
+
179
+ ```ruby
180
+ within_log_context customer_id: 1234 do
181
+ Rails.logger.info 'test 1'
182
+ end
183
+ Rails.logger.info 'test 2'
184
+
185
+ #=> {...,"level":"INFO","customer_id":1234,"message":"test 1"}
186
+ #=> {...,"level":"INFO","message":"test 2"}
187
+ ```
188
+
189
+ * `add_to_log_context(context)`: Adds the provided `context` to the current log context but provides no mechanism for
190
+ removing it later. Only use this method if you are sure that you're working within a specific log context and that it
191
+ will be cleaned up later (e.g. by only using this method in a block passed to the previously explained
192
+ `within_log_context` method).
193
+
194
+ You can access these methods either in the global scope by calling them via `Ezlog.within_log_context` and
195
+ `Ezlog.add_to_log_context` or locally by including the `Ezlog::LogContextHelper` module into your class/module.
196
+
155
197
  ### Provides testing support for RSpec
156
198
 
157
199
  Ezlog comes with built-in support for testing your logging activity using [RSpec](https://rspec.info/).
@@ -45,7 +45,7 @@ module Ezlog
45
45
  private
46
46
 
47
47
  def initialize_sidekiq_logging(app)
48
- ::Sidekiq.logger = Ezlog.logger('Sidekiq')
48
+ ::Sidekiq.logger = Ezlog.logger('Sidekiq').extend Ezlog::Sidekiq::LoggerExtension
49
49
  ::Sidekiq.logger.level = app.config.log_level
50
50
  ::Sidekiq.configure_server do |config|
51
51
  config.options[:job_logger] = Ezlog::Sidekiq::JobLogger
@@ -3,5 +3,6 @@ module Ezlog
3
3
  autoload :ErrorLogger, 'ezlog/sidekiq/error_logger'
4
4
  autoload :JobContext, 'ezlog/sidekiq/job_context'
5
5
  autoload :JobLogger, 'ezlog/sidekiq/job_logger'
6
+ autoload :LoggerExtension, 'ezlog/sidekiq/logger_extension'
6
7
  end
7
8
  end
@@ -0,0 +1,11 @@
1
+ module Ezlog
2
+ module Sidekiq
3
+ module LoggerExtension
4
+ include LogContextHelper
5
+
6
+ def with_context(context, &block)
7
+ within_log_context context, &block
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module Ezlog
2
- VERSION = '0.5.1'
2
+ VERSION = '0.5.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ezlog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zoltan Ormandi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-16 00:00:00.000000000 Z
11
+ date: 2019-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logging
@@ -159,6 +159,7 @@ files:
159
159
  - lib/ezlog/sidekiq/error_logger.rb
160
160
  - lib/ezlog/sidekiq/job_context.rb
161
161
  - lib/ezlog/sidekiq/job_logger.rb
162
+ - lib/ezlog/sidekiq/logger_extension.rb
162
163
  - lib/ezlog/version.rb
163
164
  - lib/sequel/extensions/ezlog_logging.rb
164
165
  homepage: https://github.com/emartech/ezlog
@@ -181,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
182
  - !ruby/object:Gem::Version
182
183
  version: '0'
183
184
  requirements: []
184
- rubygems_version: 3.0.1
185
+ rubygems_version: 3.0.3
185
186
  signing_key:
186
187
  specification_version: 4
187
188
  summary: A zero-configuration logging solution for projects using Sidekiq, Rails,