yeti_logger 3.2.0 → 3.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 +4 -4
- data/.github/workflows/ruby.yml +32 -0
- data/CHANGELOG.md +9 -0
- data/README.md +13 -1
- data/lib/yeti_logger/custom_formatter.rb +34 -0
- data/lib/yeti_logger/version.rb +1 -1
- data/spec/lib/yeti_logger/message_formatters_spec.rb +1 -0
- metadata +5 -6
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
- data/.travis.yml +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f58be8ecadfe9be95d8517795d6d28b68d3c870957f73477e9a9780c78089c9d
|
4
|
+
data.tar.gz: b693a3f73e811f9f2d773755d05339b083517bbf288dcb96cf7c2710819ce326
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '010960813b5a5cabea56c2299a692a5111682a330262350bd68da570c435ca9a61cfcdf79ff66c20c18424a596179ea2423681d3acb42262ce35d61b4e3db45f'
|
7
|
+
data.tar.gz: 5f1a528a27bbc3b851c4980f3fe5af6c135a37874da3744c9a958488b351fa41e772725241204d87e61f4e946de96814defd08ddafa26e15ac9bdade103c5b3c
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# This workflow uses actions that are not certified by GitHub.
|
2
|
+
# They are provided by a third-party and are governed by
|
3
|
+
# separate terms of service, privacy policy, and support
|
4
|
+
# documentation.
|
5
|
+
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
|
6
|
+
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
|
7
|
+
|
8
|
+
name: Ruby
|
9
|
+
|
10
|
+
on:
|
11
|
+
push:
|
12
|
+
branches: [ master ]
|
13
|
+
pull_request:
|
14
|
+
branches: [ master ]
|
15
|
+
|
16
|
+
jobs:
|
17
|
+
test:
|
18
|
+
|
19
|
+
runs-on: ubuntu-latest
|
20
|
+
strategy:
|
21
|
+
matrix:
|
22
|
+
ruby-version: ['2.6', '2.7', '3.0']
|
23
|
+
|
24
|
+
steps:
|
25
|
+
- uses: actions/checkout@v2
|
26
|
+
- name: Set up Ruby
|
27
|
+
uses: ruby/setup-ruby@v1
|
28
|
+
with:
|
29
|
+
ruby-version: ${{ matrix.ruby-version }}
|
30
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
31
|
+
- name: Run tests
|
32
|
+
run: bundle exec rake
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# yeti_logger changelog
|
2
2
|
|
3
|
+
## v3.3.2
|
4
|
+
- CustomFormatter does not include timestamp in log in production and staging environments
|
5
|
+
|
6
|
+
## v3.3.1
|
7
|
+
- CustomFormatter uses Time.now instead of Time.now.utc
|
8
|
+
|
9
|
+
## v3.3.0
|
10
|
+
- Add custom rails logger formatter
|
11
|
+
|
3
12
|
## v3.2.0
|
4
13
|
- Added configuration to override debug logging for specific users
|
5
14
|
|
data/README.md
CHANGED
@@ -2,7 +2,8 @@
|
|
2
2
|
|
3
3
|
Provides standardized logging across Yesware apps.
|
4
4
|
|
5
|
-
[](https://github.com/Yesware/yeti_logger/actions/workflows/ruby.yml)
|
6
|
+
|
6
7
|
|
7
8
|
## Installation
|
8
9
|
|
@@ -105,6 +106,17 @@ is a hash, then the exception in injected into the hash and printed as
|
|
105
106
|
additional `key=value` pairs. Classname, message and backtrace are included in
|
106
107
|
the message.
|
107
108
|
|
109
|
+
### Custom formatter
|
110
|
+
To add a set of tags to every log output by the underlying logger, initialize
|
111
|
+
`YetiLogger::CustomFormatter` and assign it to your logger's formatter. Pass a
|
112
|
+
hash to the initializer mapping the name of the tags to the proc that evaluates
|
113
|
+
to their value. The procs are evaluated lazily when the log generated.
|
114
|
+
|
115
|
+
Rails.logger.formatter = CustomFormatter.new({
|
116
|
+
"thread_id": -> { Thread.current.object_id.to_s(36) },
|
117
|
+
"trace_id": -> { OpenTelemetry::Trace.current_span ? OpenTelemetry::Trace.current_span.context.hex_trace_id : "0" },
|
118
|
+
})
|
119
|
+
|
108
120
|
### Nested Hashes
|
109
121
|
|
110
122
|
For hash logging, each key and value are converted to strings which means
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# CustomFormatter is a custom Rails log formatter.
|
2
|
+
# It has support for adding arbitrary tags to every log created by the Rails logger.
|
3
|
+
# Tag values are generated at log creation time.
|
4
|
+
class YetiLogger::CustomFormatter
|
5
|
+
# @param tags [Hash] - maps names of tags to procs that return their value.
|
6
|
+
def initialize(tags = {})
|
7
|
+
super()
|
8
|
+
@tags = tags
|
9
|
+
end
|
10
|
+
|
11
|
+
# @param tags [Hash] - maps names of tags to procs that return their value
|
12
|
+
def add_tags(tags)
|
13
|
+
@tags.merge!(tags)
|
14
|
+
end
|
15
|
+
|
16
|
+
# @param severity [String]
|
17
|
+
# @param time [Time] unused
|
18
|
+
# @param progname [String] unused
|
19
|
+
# @param msg [String] - log body
|
20
|
+
def call(severity, time, progname, msg)
|
21
|
+
timestamp = %w(production staging).include?(ENV['RAILS_ENV']) ? "" : "#{Time.now.iso8601(3)} "
|
22
|
+
pid = Process.pid
|
23
|
+
msg = msg.inspect unless msg.is_a?(String)
|
24
|
+
msg = "#{msg}\n" unless msg[-1] == ?\n
|
25
|
+
log_str = "#{timestamp}pid=#{pid}"
|
26
|
+
|
27
|
+
tag_str = @tags.map { |k, v|
|
28
|
+
value = v.call
|
29
|
+
"#{k}=#{value}" unless value.to_s.empty?
|
30
|
+
}.compact.join(' ')
|
31
|
+
|
32
|
+
"#{log_str}#{tag_str.empty? ? '' : ' ' + tag_str} [#{severity}] - #{msg}"
|
33
|
+
end
|
34
|
+
end
|
data/lib/yeti_logger/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yeti_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.2
|
4
|
+
version: 3.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yesware, Inc
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -115,11 +115,9 @@ executables: []
|
|
115
115
|
extensions: []
|
116
116
|
extra_rdoc_files: []
|
117
117
|
files:
|
118
|
+
- ".github/workflows/ruby.yml"
|
118
119
|
- ".gitignore"
|
119
120
|
- ".rspec"
|
120
|
-
- ".ruby-gemset"
|
121
|
-
- ".ruby-version"
|
122
|
-
- ".travis.yml"
|
123
121
|
- CHANGELOG.md
|
124
122
|
- Gemfile
|
125
123
|
- MIT-LICENSE
|
@@ -128,6 +126,7 @@ files:
|
|
128
126
|
- lib/yeti_logger.rb
|
129
127
|
- lib/yeti_logger/configuration.rb
|
130
128
|
- lib/yeti_logger/constants.rb
|
129
|
+
- lib/yeti_logger/custom_formatter.rb
|
131
130
|
- lib/yeti_logger/message_formatters.rb
|
132
131
|
- lib/yeti_logger/test_helper.rb
|
133
132
|
- lib/yeti_logger/version.rb
|
@@ -157,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
156
|
- !ruby/object:Gem::Version
|
158
157
|
version: '0'
|
159
158
|
requirements: []
|
160
|
-
rubygems_version: 3.
|
159
|
+
rubygems_version: 3.5.3
|
161
160
|
signing_key:
|
162
161
|
specification_version: 4
|
163
162
|
summary: Provides standardized logging
|
data/.ruby-gemset
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
yesware
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
ruby-2.7.3
|
data/.travis.yml
DELETED