ezlog 0.3.1 → 0.3.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 +5 -5
- data/.travis.yml +3 -1
- data/CHANGELOG.md +14 -3
- data/README.md +12 -9
- data/lib/ezlog/railtie.rb +3 -4
- data/lib/ezlog/sidekiq/job_logger.rb +8 -6
- data/lib/ezlog/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 224d8e39821229350d6b406645432d210cc2b2e8
|
|
4
|
+
data.tar.gz: 45d821f0923048e29c085a3a86a6104776b2dbc0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8ad716714f7e5cef573a434828bca5984ed5af24222a339f1e9712a9e4ccb3478f326c01219fac4f01e34afad0b25b052c550309626d4c04a861be673b2bb46b
|
|
7
|
+
data.tar.gz: febe42af5f6d3356e644cce5c43c289bcba87cc8a1caa2ace751f9fd7d23cbc66be7ea59c5251c44cdd55436f4136fab9985ece9e41552d77b05b48a95e8dd8e
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,23 @@
|
|
|
1
|
+
### 0.3.2 (2019-06-18)
|
|
2
|
+
|
|
3
|
+
[Full Changelog](https://github.com/emartech/ezlog/compare/v0.3.1...v0.3.2)
|
|
4
|
+
|
|
5
|
+
* Features & enhancements
|
|
6
|
+
* Ruby 2.4 is supported
|
|
7
|
+
|
|
8
|
+
* Bug fixes
|
|
9
|
+
* Default log level is now set for the root logger instead of the root log layout so that the log level can be
|
|
10
|
+
overriden programatically per logger (if necessary)
|
|
11
|
+
|
|
1
12
|
### 0.3.1 (2019-06-09)
|
|
2
13
|
|
|
3
14
|
[Full Changelog](https://github.com/emartech/ezlog/compare/v0.2.2...v0.3.1)
|
|
4
15
|
|
|
5
16
|
* Features & enhancements
|
|
6
|
-
* Unified access log for Rails
|
|
17
|
+
* Unified access log for [Rails](https://rubyonrails.org/)
|
|
7
18
|
* 1 message per request
|
|
8
19
|
* Includes request ID, parameters, response code
|
|
9
|
-
* Non-verbose logging of uncaught exceptions in Rails apps
|
|
20
|
+
* Non-verbose logging of uncaught exceptions in [Rails](https://rubyonrails.org/) apps
|
|
10
21
|
* 1 message per error
|
|
11
22
|
* Use ERROR level instead of FATAL
|
|
12
23
|
* [Rack::Timeout](https://github.com/heroku/rack-timeout) logging is now completely turned off, because Timeout errors
|
|
@@ -44,4 +55,4 @@ First version of the gem including the following:
|
|
|
44
55
|
* JobLogger for [Sidekiq](https://github.com/mperham/sidekiq)
|
|
45
56
|
* Filter [Rack::Timeout](https://github.com/heroku/rack-timeout) logs to WARN level and above
|
|
46
57
|
* [RSpec](https://rspec.info/) support
|
|
47
|
-
* Rails integration via Railtie
|
|
58
|
+
* [Rails](https://rubyonrails.org/) integration via Railtie
|
data/README.md
CHANGED
|
@@ -34,9 +34,9 @@ That's it. Everything else is automatically configured.
|
|
|
34
34
|
## What it does
|
|
35
35
|
|
|
36
36
|
* Initializes the [Logging](https://github.com/TwP/logging) library
|
|
37
|
-
* Configures Rails logging
|
|
38
|
-
* Configures Sidekiq logging
|
|
39
|
-
* Configures Rack::Timeout logging
|
|
37
|
+
* Configures [Rails](https://rubyonrails.org/)'s logging
|
|
38
|
+
* Configures [Sidekiq](https://github.com/mperham/sidekiq) logging
|
|
39
|
+
* Configures [Rack::Timeout](https://github.com/heroku/rack-timeout) logging
|
|
40
40
|
* Provides testing support for [RSpec](https://rspec.info/)
|
|
41
41
|
|
|
42
42
|
#### Initializes the Logging library
|
|
@@ -67,23 +67,23 @@ logger.info message: 'Job finished', duration: 2
|
|
|
67
67
|
#=> {"logger":"App","timestamp":"2019-05-11T16:08:38+02:00","level":"INFO","hostname":"MacbookPro.local","pid":71674,"message":"Job finished","duration":2}
|
|
68
68
|
|
|
69
69
|
logger.error ex
|
|
70
|
-
#=> {"logger":"App","timestamp":"2019-05-11T16:08:38+02:00","level":"
|
|
70
|
+
#=> {"logger":"App","timestamp":"2019-05-11T16:08:38+02:00","level":"ERROR","hostname":"MacbookPro.local","pid":71674,"message":"Error message","error":{"class":"StandardError","message":"Error message","backtrace":[...]}}
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
#### Configures Rails logging
|
|
74
74
|
|
|
75
75
|
Ezlog configures the `Rails.logger` to be an instance of a [Logging](https://github.com/TwP/logging) logger by the name
|
|
76
|
-
of `Application`, behaving as described above. The logger uses the log level set in `application.rb`
|
|
77
|
-
|
|
76
|
+
of `Application`, behaving as described above. The logger uses the log level set in `application.rb` if present, or
|
|
77
|
+
INFO as a default log level.
|
|
78
78
|
|
|
79
79
|
In addition to this, Ezlog also does the following:
|
|
80
80
|
* It adds the environment (`Rails.env`) to the logger's initial context, so it will automatically be appended to all log messages
|
|
81
81
|
emitted by the application.
|
|
82
|
-
* It disables Rails's default
|
|
82
|
+
* It disables Rails's default logging of uncaught errors and injects its own error logger into the application, which
|
|
83
83
|
* logs 1 line per error, including the error's name and context (stack trace, etc.),
|
|
84
84
|
* logs every error at ERROR level instead of the default FATAL.
|
|
85
|
-
* It disables Rails's default
|
|
86
|
-
and replaces the default Rack access log with its own access log middleware. The end result is an access log
|
|
85
|
+
* It disables Rails's default request logging, which logs several lines per event during the processing of an action,
|
|
86
|
+
and replaces the default Rack access log with its own access log middleware. The end result is an access log that
|
|
87
87
|
* contains all relevant information (request ID, method, path, params, client IP, duration and response status code), and
|
|
88
88
|
* has 1 log line per request, logged at the end of the request.
|
|
89
89
|
|
|
@@ -123,6 +123,8 @@ during the execution of the job will contain this information as well.
|
|
|
123
123
|
|
|
124
124
|
```ruby
|
|
125
125
|
class TestWorker
|
|
126
|
+
include Sidekiq::Worker
|
|
127
|
+
|
|
126
128
|
def perform(customer_id)
|
|
127
129
|
logger.warn 'Customer not found'
|
|
128
130
|
end
|
|
@@ -145,6 +147,7 @@ as well. For this reason, Ezlog turns off [Rack::Timeout](https://github.com/her
|
|
|
145
147
|
|
|
146
148
|
Ezlog comes with built-in support for testing your logging activity using [RSpec](https://rspec.info/).
|
|
147
149
|
To enable spec support for Ezlog, put this line in your `spec_helper.rb` or `rails_helper.rb`:
|
|
150
|
+
|
|
148
151
|
```ruby
|
|
149
152
|
require "ezlog/rspec"
|
|
150
153
|
```
|
data/lib/ezlog/railtie.rb
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
module Ezlog
|
|
2
2
|
class Railtie < Rails::Railtie
|
|
3
3
|
initializer 'ezlog.configure_logging' do |app|
|
|
4
|
-
::Logging.logger.root.appenders = ::Logging.appenders.stdout 'stdout',
|
|
5
|
-
|
|
6
|
-
level: app.config.log_level
|
|
4
|
+
::Logging.logger.root.appenders = ::Logging.appenders.stdout 'stdout', layout: Ezlog::LoggingLayout.new(environment: ::Rails.env)
|
|
5
|
+
::Logging.logger.root.level = app.config.log_level
|
|
7
6
|
end
|
|
8
7
|
|
|
9
8
|
initializer 'ezlog.configure_sidekiq_logging' do
|
|
@@ -34,7 +33,7 @@ module Ezlog
|
|
|
34
33
|
private
|
|
35
34
|
|
|
36
35
|
def initialize_sidekiq_logging
|
|
37
|
-
::Sidekiq.logger =
|
|
36
|
+
::Sidekiq.logger = Ezlog.logger('Sidekiq')
|
|
38
37
|
::Sidekiq.logger.level = :info
|
|
39
38
|
::Sidekiq.configure_server do |config|
|
|
40
39
|
config.options[:job_logger] = Ezlog::Sidekiq::JobLogger
|
|
@@ -7,12 +7,14 @@ module Ezlog
|
|
|
7
7
|
|
|
8
8
|
def call(job_hash, _queue)
|
|
9
9
|
within_log_context(JobContext.from_job_hash(job_hash)) do
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
begin
|
|
11
|
+
logger.info "#{job_hash['class']} started"
|
|
12
|
+
benchmark { yield }
|
|
13
|
+
logger.info message: "#{job_hash['class']} finished"
|
|
14
|
+
rescue Exception
|
|
15
|
+
logger.info message: "#{job_hash['class']} failed"
|
|
16
|
+
raise
|
|
17
|
+
end
|
|
16
18
|
end
|
|
17
19
|
end
|
|
18
20
|
|
data/lib/ezlog/version.rb
CHANGED
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.3.
|
|
4
|
+
version: 0.3.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-06-
|
|
11
|
+
date: 2019-06-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: logging
|
|
@@ -150,7 +150,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
150
150
|
- !ruby/object:Gem::Version
|
|
151
151
|
version: '0'
|
|
152
152
|
requirements: []
|
|
153
|
-
|
|
153
|
+
rubyforge_project:
|
|
154
|
+
rubygems_version: 2.6.13
|
|
154
155
|
signing_key:
|
|
155
156
|
specification_version: 4
|
|
156
157
|
summary: A zero-configuration logging solution for projects using Sidekiq, Rails,
|