ezlog 0.3.2 → 0.3.3
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/CHANGELOG.md +8 -0
- data/README.md +21 -12
- data/lib/ezlog/railtie.rb +5 -5
- data/lib/ezlog/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: e820d0ac516dc835494a109ac51e172f73f90be55e756ccc248a4a87fc7c890c
|
|
4
|
+
data.tar.gz: 83153708c674634ccbe37193a7945038d3b1758e1f114b9cd33609c937cda102
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c68f24ec9b95d3175d1d2140cdf1b918704fda5d6dab419cf6a2dac370137860d4c25d2ef2433af660d124e80aa152138db3be8991e09da93bde0ba5d70b2867
|
|
7
|
+
data.tar.gz: 0f1614756509f95871e96330aa95b2f498d91ed3be358d8b8d6b3c18699b5015511dac9c413b4e355f72ccc05f837ce86599908811572e2d928a85cacd9134b7
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
### 0.3.3 (2019-08-10)
|
|
2
|
+
|
|
3
|
+
[Full Changelog](https://github.com/emartech/ezlog/compare/v0.3.2...v0.3.3)
|
|
4
|
+
|
|
5
|
+
* Features & enhancements
|
|
6
|
+
* [Sidekiq](https://github.com/mperham/sidekiq) logging respects the log level configured for the application.
|
|
7
|
+
* Log level can be set from an environment variable (LOG_LEVEL).
|
|
8
|
+
|
|
1
9
|
### 0.3.2 (2019-06-18)
|
|
2
10
|
|
|
3
11
|
[Full Changelog](https://github.com/emartech/ezlog/compare/v0.3.1...v0.3.2)
|
data/README.md
CHANGED
|
@@ -39,7 +39,7 @@ That's it. Everything else is automatically configured.
|
|
|
39
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
|
|
43
43
|
|
|
44
44
|
Ezlog sets up [Logging](https://github.com/TwP/logging)'s root logger to have an appender that writes to STDOUT.
|
|
45
45
|
Any loggers created by the application will inherit this appender and will thus write their logs to STDOUT.
|
|
@@ -70,11 +70,10 @@ logger.error ex
|
|
|
70
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.
|
|
77
|
-
INFO as a default log level.
|
|
76
|
+
of `Application`, behaving as described above.
|
|
78
77
|
|
|
79
78
|
In addition to this, Ezlog also does the following:
|
|
80
79
|
* It adds the environment (`Rails.env`) to the logger's initial context, so it will automatically be appended to all log messages
|
|
@@ -108,15 +107,25 @@ With Ezlog:
|
|
|
108
107
|
{"logger":"AccessLog","timestamp":"2019-06-08T08:49:31+02:00","level":"INFO","hostname":"MacbookPro.local","pid":75463,"environment":"development","request_id":"9a43631b-284c-4677-9d08-9c1cc5c7d3a7","duration_sec":0.031,"message":"GET /welcome?subsession_id=34ea8596f9764f475f81158667bc2654 - 200 (OK)","remote_ip":"127.0.0.1","method":"GET","path":"/welcome?subsession_id=34ea8596f9764f475f81158667bc2654","params":{"subsession_id":"34ea8596f9764f475f81158667bc2654","controller":"pages","action":"welcome"},"response_status_code":200}
|
|
109
108
|
```
|
|
110
109
|
|
|
111
|
-
####
|
|
110
|
+
#### The log level
|
|
111
|
+
|
|
112
|
+
The logger's log level is determined as follows (in order of precedence):
|
|
113
|
+
* the log level set in the application's configuration,
|
|
114
|
+
* the LOG_LEVEL environment variable, or
|
|
115
|
+
* `INFO` as the default log level if none of the above are set.
|
|
116
|
+
|
|
117
|
+
The following log levels are available: `DEBUG`, `INFO`, `WARN`, `ERROR`, `FATAL`.
|
|
118
|
+
|
|
119
|
+
### Configures Sidekiq logging
|
|
112
120
|
|
|
113
121
|
Ezlog configures the `Sidekiq.logger` to be an instance of a [Logging](https://github.com/TwP/logging) logger by the name
|
|
114
|
-
of `Sidekiq`, behaving as described above.
|
|
122
|
+
of `Sidekiq`, behaving as described above. The logger uses the same log level as the [Rails](https://rubyonrails.org/)
|
|
123
|
+
logger (see above). Ezlog also comes with its own job logger for [Sidekiq](https://github.com/mperham/sidekiq)
|
|
115
124
|
which does several things that come in very handy when working with background jobs.
|
|
116
125
|
|
|
117
126
|
* It emits two log messages per job run; one when the job is started and another one when the job is finished (successfully or unsuccessfuly).
|
|
118
127
|
* It measures the time it took to execute the job and appends the benchmark information to the final log message.
|
|
119
|
-
* It adds all basic information about the job (worker, queue, JID, created_at, enqueued_at) to the log context so
|
|
128
|
+
* It adds all basic information about the job (worker, queue, JID, created_at, enqueued_at, run_count) to the log context so
|
|
120
129
|
all log messages emitted during the execution of the job will contain this information.
|
|
121
130
|
* It also adds all of the job's parameters (by name) to the log context, which means that all log messages emitted
|
|
122
131
|
during the execution of the job will contain this information as well.
|
|
@@ -132,18 +141,18 @@ end
|
|
|
132
141
|
|
|
133
142
|
TestWorker.perform_async 42
|
|
134
143
|
|
|
135
|
-
#=> {"logger":"Sidekiq","timestamp":"2019-05-12T10:38:10+02:00","level":"INFO","hostname":"MacbookPro.local","pid":75538,"jid":"abcdef1234567890","queue":"default","worker":"TestWorker","created_at":"2019-05-12 10:38:10 +0200","enqueued_at":"2019-05-12 10:38:10 +0200","customer_id":42,"message":"TestWorker started"}
|
|
136
|
-
#=> {"logger":"Sidekiq","timestamp":"2019-05-12T10:38:10+02:00","level":"WARN","hostname":"MacbookPro.local","pid":75538,"jid":"abcdef1234567890","queue":"default","worker":"TestWorker","created_at":"2019-05-12 10:38:10 +0200","enqueued_at":"2019-05-12 10:38:10 +0200","customer_id":42,"message":"Customer not found"}
|
|
137
|
-
#=> {"logger":"Sidekiq","timestamp":"2019-05-12T10:38:12+02:00","level":"INFO","hostname":"MacbookPro.local","pid":75538,"jid":"abcdef1234567890","queue":"default","worker":"TestWorker","created_at":"2019-05-12 10:38:10 +0200","enqueued_at":"2019-05-12 10:38:10 +0200","customer_id":42,"duration_sec":2.667,"message":"TestWorker finished"}
|
|
144
|
+
#=> {"logger":"Sidekiq","timestamp":"2019-05-12T10:38:10+02:00","level":"INFO","hostname":"MacbookPro.local","pid":75538,"jid":"abcdef1234567890","queue":"default","worker":"TestWorker","created_at":"2019-05-12 10:38:10 +0200","enqueued_at":"2019-05-12 10:38:10 +0200","run_count":1,"customer_id":42,"message":"TestWorker started"}
|
|
145
|
+
#=> {"logger":"Sidekiq","timestamp":"2019-05-12T10:38:10+02:00","level":"WARN","hostname":"MacbookPro.local","pid":75538,"jid":"abcdef1234567890","queue":"default","worker":"TestWorker","created_at":"2019-05-12 10:38:10 +0200","enqueued_at":"2019-05-12 10:38:10 +0200","run_count":1,"customer_id":42,"message":"Customer not found"}
|
|
146
|
+
#=> {"logger":"Sidekiq","timestamp":"2019-05-12T10:38:12+02:00","level":"INFO","hostname":"MacbookPro.local","pid":75538,"jid":"abcdef1234567890","queue":"default","worker":"TestWorker","created_at":"2019-05-12 10:38:10 +0200","enqueued_at":"2019-05-12 10:38:10 +0200","run_count":1,"customer_id":42,"duration_sec":2.667,"message":"TestWorker finished"}
|
|
138
147
|
```
|
|
139
148
|
|
|
140
|
-
|
|
149
|
+
### Configures Rack::Timeout logging
|
|
141
150
|
|
|
142
151
|
[Rack::Timeout](https://github.com/heroku/rack-timeout) is a very useful tool for people running services on Heroku
|
|
143
152
|
but it is way too verbose by default and all of its important messages (i.e. Timeout errors) are logged by the application
|
|
144
153
|
as well. For this reason, Ezlog turns off [Rack::Timeout](https://github.com/heroku/rack-timeout) logging completely.
|
|
145
154
|
|
|
146
|
-
|
|
155
|
+
### Provides testing support for RSpec
|
|
147
156
|
|
|
148
157
|
Ezlog comes with built-in support for testing your logging activity using [RSpec](https://rspec.info/).
|
|
149
158
|
To enable spec support for Ezlog, put this line in your `spec_helper.rb` or `rails_helper.rb`:
|
data/lib/ezlog/railtie.rb
CHANGED
|
@@ -5,8 +5,8 @@ module Ezlog
|
|
|
5
5
|
::Logging.logger.root.level = app.config.log_level
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
initializer 'ezlog.configure_sidekiq_logging' do
|
|
9
|
-
initialize_sidekiq_logging if defined? ::Sidekiq
|
|
8
|
+
initializer 'ezlog.configure_sidekiq_logging' do |app|
|
|
9
|
+
initialize_sidekiq_logging(app) if defined? ::Sidekiq
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
initializer 'ezlog.configure_rack_timeout_logging' do
|
|
@@ -27,14 +27,14 @@ module Ezlog
|
|
|
27
27
|
|
|
28
28
|
config.before_configuration do |app|
|
|
29
29
|
app.config.logger = Ezlog.logger('Application')
|
|
30
|
-
app.config.log_level = :info
|
|
30
|
+
app.config.log_level = ENV['LOG_LEVEL'] || :info
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
private
|
|
34
34
|
|
|
35
|
-
def initialize_sidekiq_logging
|
|
35
|
+
def initialize_sidekiq_logging(app)
|
|
36
36
|
::Sidekiq.logger = Ezlog.logger('Sidekiq')
|
|
37
|
-
::Sidekiq.logger.level =
|
|
37
|
+
::Sidekiq.logger.level = app.config.log_level
|
|
38
38
|
::Sidekiq.configure_server do |config|
|
|
39
39
|
config.options[:job_logger] = Ezlog::Sidekiq::JobLogger
|
|
40
40
|
config.error_handlers << Ezlog::Sidekiq::ErrorLogger.new
|
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.3
|
|
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-
|
|
11
|
+
date: 2019-08-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: logging
|
|
@@ -150,8 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
150
150
|
- !ruby/object:Gem::Version
|
|
151
151
|
version: '0'
|
|
152
152
|
requirements: []
|
|
153
|
-
|
|
154
|
-
rubygems_version: 2.6.13
|
|
153
|
+
rubygems_version: 3.0.1
|
|
155
154
|
signing_key:
|
|
156
155
|
specification_version: 4
|
|
157
156
|
summary: A zero-configuration logging solution for projects using Sidekiq, Rails,
|