researchable_loggable 1.3.1 → 1.4.0
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/CHANGELOG.md +8 -0
- data/Gemfile +0 -1
- data/Gemfile.lock +1 -4
- data/lib/loggable/logfmt/logger.rb +86 -0
- data/lib/loggable/railtie.rb +18 -12
- data/lib/loggable/version.rb +1 -1
- data/lib/researchable_loggable.rb +1 -2
- metadata +6 -120
- data/lib/loggable/ecs_logging/formatter_monkey_patch.rb +0 -55
- data/lib/loggable/lograge/formatter.rb +0 -22
- data/node_modules/semantic-release-rubygem/src/__tests__/fixtures/invalid-version-file/lib/test-gem/version.rb +0 -5
- data/node_modules/semantic-release-rubygem/src/__tests__/fixtures/prerelease/lib/test-gem/version.rb +0 -5
- data/node_modules/semantic-release-rubygem/src/__tests__/fixtures/valid/lib/test-gem/version.rb +0 -5
- data/vendor/ruby/ruby/3.2.0/gems/actionpack-7.0.4.2/lib/action_pack/version.rb +0 -10
- data/vendor/ruby/ruby/3.2.0/gems/actionview-7.0.4.2/lib/action_view/version.rb +0 -10
- data/vendor/ruby/ruby/3.2.0/gems/activesupport-7.0.4.2/lib/active_support/version.rb +0 -10
- data/vendor/ruby/ruby/3.2.0/gems/builder-3.2.4/lib/builder/version.rb +0 -9
- data/vendor/ruby/ruby/3.2.0/gems/bundler-2.4.6/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +0 -3
- data/vendor/ruby/ruby/3.2.0/gems/bundler-2.4.6/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +0 -3
- data/vendor/ruby/ruby/3.2.0/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/version.rb +0 -3
- data/vendor/ruby/ruby/3.2.0/gems/bundler-2.4.6/lib/bundler/vendor/uri/lib/uri/version.rb +0 -6
- data/vendor/ruby/ruby/3.2.0/gems/bundler-2.4.6/lib/bundler/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/concurrent-ruby-1.2.0/lib/concurrent-ruby/concurrent/version.rb +0 -3
- data/vendor/ruby/ruby/3.2.0/gems/crass-1.0.6/lib/crass/version.rb +0 -5
- data/vendor/ruby/ruby/3.2.0/gems/ecs-logging-1.0.0/lib/ecs_logging/version.rb +0 -22
- data/vendor/ruby/ruby/3.2.0/gems/googleapis-common-protos-types-1.15.0/lib/googleapis/common/protos/types/version.rb +0 -23
- data/vendor/ruby/ruby/3.2.0/gems/i18n-1.12.0/lib/i18n/version.rb +0 -5
- data/vendor/ruby/ruby/3.2.0/gems/lograge-0.12.0/lib/lograge/version.rb +0 -5
- data/vendor/ruby/ruby/3.2.0/gems/loofah-2.19.1/lib/loofah/version.rb +0 -5
- data/vendor/ruby/ruby/3.2.0/gems/method_source-1.0.0/lib/method_source/version.rb +0 -3
- data/vendor/ruby/ruby/3.2.0/gems/nokogiri-1.14.1-x86_64-linux/lib/nokogiri/version.rb +0 -4
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-api-1.3.0/lib/opentelemetry/version.rb +0 -10
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-common-0.21.0/lib/opentelemetry/common/version.rb +0 -11
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-exporter-otlp-0.28.1/lib/opentelemetry/exporter/otlp/version.rb +0 -14
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-helpers-mysql-0.1.1/lib/opentelemetry/helpers/mysql/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-helpers-sql-obfuscation-0.2.0/lib/opentelemetry/helpers/sql_obfuscation/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-action_mailer-0.1.0/lib/opentelemetry/instrumentation/action_mailer/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-action_pack-0.9.0/lib/opentelemetry/instrumentation/action_pack/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-action_view-0.7.3/lib/opentelemetry/instrumentation/action_view/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-active_job-0.7.7/lib/opentelemetry/instrumentation/active_job/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-active_model_serializers-0.20.2/lib/opentelemetry/instrumentation/active_model_serializers/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-active_record-0.7.4/lib/opentelemetry/instrumentation/active_record/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-active_support-0.6.0/lib/opentelemetry/instrumentation/active_support/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-all-0.63.0/lib/opentelemetry/instrumentation/all/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-aws_lambda-0.1.1/lib/opentelemetry/instrumentation/aws_lambda/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-aws_sdk-0.5.4/lib/opentelemetry/instrumentation/aws_sdk/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-base-0.22.6/lib/opentelemetry/instrumentation/version.rb +0 -11
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-bunny-0.21.4/lib/opentelemetry/instrumentation/bunny/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-concurrent_ruby-0.21.4/lib/opentelemetry/instrumentation/concurrent_ruby/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-dalli-0.25.4/lib/opentelemetry/instrumentation/dalli/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-delayed_job-0.22.4/lib/opentelemetry/instrumentation/delayed_job/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-ethon-0.21.8/lib/opentelemetry/instrumentation/ethon/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-excon-0.22.4/lib/opentelemetry/instrumentation/excon/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-faraday-0.24.6/lib/opentelemetry/instrumentation/faraday/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-grape-0.2.0/lib/opentelemetry/instrumentation/grape/version.rb +0 -14
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-graphql-0.28.4/lib/opentelemetry/instrumentation/graphql/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-gruf-0.2.1/lib/opentelemetry/instrumentation/gruf/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-http-0.23.4/lib/opentelemetry/instrumentation/http/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-http_client-0.22.7/lib/opentelemetry/instrumentation/http_client/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-koala-0.20.5/lib/opentelemetry/instrumentation/koala/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-lmdb-0.22.3/lib/opentelemetry/instrumentation/lmdb/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-mongo-0.22.4/lib/opentelemetry/instrumentation/mongo/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-mysql2-0.27.2/lib/opentelemetry/instrumentation/mysql2/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-net_http-0.22.7/lib/opentelemetry/instrumentation/net/http/version.rb +0 -15
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-pg-0.28.0/lib/opentelemetry/instrumentation/pg/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-que-0.8.4/lib/opentelemetry/instrumentation/que/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-racecar-0.3.4/lib/opentelemetry/instrumentation/racecar/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-rack-0.24.6/lib/opentelemetry/instrumentation/rack/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-rails-0.31.2/lib/opentelemetry/instrumentation/rails/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-rake-0.2.2/lib/opentelemetry/instrumentation/rake/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-rdkafka-0.4.8/lib/opentelemetry/instrumentation/rdkafka/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-redis-0.25.7/lib/opentelemetry/instrumentation/redis/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-resque-0.5.2/lib/opentelemetry/instrumentation/resque/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-restclient-0.22.7/lib/opentelemetry/instrumentation/restclient/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-ruby_kafka-0.21.3/lib/opentelemetry/instrumentation/ruby_kafka/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-sidekiq-0.25.7/lib/opentelemetry/instrumentation/sidekiq/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-sinatra-0.24.1/lib/opentelemetry/instrumentation/sinatra/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-trilogy-0.59.3/lib/opentelemetry/instrumentation/trilogy/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-registry-0.3.1/lib/opentelemetry/instrumentation/registry/version.rb +0 -13
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-sdk-1.5.0/lib/opentelemetry/sdk/version.rb +0 -12
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-semantic_conventions-1.10.1/lib/opentelemetry/semantic_conventions/version.rb +0 -11
- data/vendor/ruby/ruby/3.2.0/gems/parallel-1.22.1/lib/parallel/version.rb +0 -4
- data/vendor/ruby/ruby/3.2.0/gems/parser-3.2.1.1/lib/parser/version.rb +0 -5
- data/vendor/ruby/ruby/3.2.0/gems/rack-2.2.6.2/lib/rack/version.rb +0 -29
- data/vendor/ruby/ruby/3.2.0/gems/rack-test-2.0.2/lib/rack/test/version.rb +0 -5
- data/vendor/ruby/ruby/3.2.0/gems/rails-dom-testing-2.0.3/lib/rails/dom/testing/version.rb +0 -7
- data/vendor/ruby/ruby/3.2.0/gems/rails-html-sanitizer-1.5.0/lib/rails/html/sanitizer/version.rb +0 -7
- data/vendor/ruby/ruby/3.2.0/gems/railties-7.0.4.2/lib/rails/version.rb +0 -10
- data/vendor/ruby/ruby/3.2.0/gems/rainbow-3.1.1/lib/rainbow/version.rb +0 -5
- data/vendor/ruby/ruby/3.2.0/gems/rake-13.0.6/lib/rake/version.rb +0 -10
- data/vendor/ruby/ruby/3.2.0/gems/regexp_parser-2.7.0/lib/regexp_parser/version.rb +0 -5
- data/vendor/ruby/ruby/3.2.0/gems/request_store-1.5.1/lib/request_store/version.rb +0 -3
- data/vendor/ruby/ruby/3.2.0/gems/rspec-3.12.0/lib/rspec/version.rb +0 -5
- data/vendor/ruby/ruby/3.2.0/gems/rspec-core-3.12.1/lib/rspec/core/version.rb +0 -9
- data/vendor/ruby/ruby/3.2.0/gems/rspec-expectations-3.12.2/lib/rspec/expectations/version.rb +0 -8
- data/vendor/ruby/ruby/3.2.0/gems/rspec-mocks-3.12.3/lib/rspec/mocks/version.rb +0 -9
- data/vendor/ruby/ruby/3.2.0/gems/rspec-support-3.12.0/lib/rspec/support/version.rb +0 -7
- data/vendor/ruby/ruby/3.2.0/gems/rubocop-1.23.0/lib/rubocop/cli/command/version.rb +0 -18
- data/vendor/ruby/ruby/3.2.0/gems/rubocop-1.23.0/lib/rubocop/version.rb +0 -85
- data/vendor/ruby/ruby/3.2.0/gems/rubocop-ast-1.27.0/lib/rubocop/ast/version.rb +0 -9
- data/vendor/ruby/ruby/3.2.0/gems/rubocop-performance-1.12.0/lib/rubocop/performance/version.rb +0 -14
- data/vendor/ruby/ruby/3.2.0/gems/rubocop-rails-2.12.4/lib/rubocop/rails/version.rb +0 -14
- data/vendor/ruby/ruby/3.2.0/gems/rubocop-rake-0.6.0/lib/rubocop/rake/version.rb +0 -7
- data/vendor/ruby/ruby/3.2.0/gems/rubocop-rspec-2.6.0/lib/rubocop/rspec/version.rb +0 -10
- data/vendor/ruby/ruby/3.2.0/gems/ruboguide-1.0.0/lib/ruboguide/version.rb +0 -5
- data/vendor/ruby/ruby/3.2.0/gems/ruby-progressbar-1.13.0/lib/ruby-progressbar/version.rb +0 -3
- data/vendor/ruby/ruby/3.2.0/gems/thor-1.2.1/lib/thor/version.rb +0 -3
- data/vendor/ruby/ruby/3.2.0/gems/tzinfo-2.0.6/lib/tzinfo/version.rb +0 -7
- data/vendor/ruby/ruby/3.2.0/gems/zeitwerk-2.6.7/lib/zeitwerk/version.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b80bc8fef9e875582f653226ef7bcc8f2bf01c44b7befba142694842800026f
|
4
|
+
data.tar.gz: 55cd5ef8ca78c68dd4e25ebc1cd7e68627f1871d4a2d0f646267a41ab8cab623
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f7821133b81bd0e363fea979048ef084e602860f83a558ed1d923b93f17950855dbc041ddc1eb314eeedfae03fdb8ed88319d4ea589439d4f8d5754c6ac86da
|
7
|
+
data.tar.gz: 1482b7dd44efb2a1177aabccd50f0f3ffb888e0af4448fc4ce27871ee93daf1648e745572f501a4770e42e7b571cd66c9088e7523d17534133362a2735a04dc9
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
# [1.4.0](https://gitlab.com/researchable/general/gems/loggable/compare/v1.3.1...v1.4.0) (2024-11-29)
|
2
|
+
|
3
|
+
|
4
|
+
### Features
|
5
|
+
|
6
|
+
* add trace and span id ([6e486e0](https://gitlab.com/researchable/general/gems/loggable/commit/6e486e03f7bef1ecf739195d80472f3cf3c2b7f6))
|
7
|
+
* replace ecs logging format to logfmt ([19eb571](https://gitlab.com/researchable/general/gems/loggable/commit/19eb571719ed294fed4f94094c091c76470cae53))
|
8
|
+
|
1
9
|
## [1.3.1](https://gitlab.com/researchable/general/gems/loggable/compare/v1.3.0...v1.3.1) (2024-11-26)
|
2
10
|
|
3
11
|
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
researchable_loggable (1.
|
5
|
-
ecs-logging (~> 1.0)
|
4
|
+
researchable_loggable (1.3.1)
|
6
5
|
lograge
|
7
6
|
logstash-event
|
8
7
|
opentelemetry-exporter-otlp (~> 0.28)
|
@@ -36,7 +35,6 @@ GEM
|
|
36
35
|
concurrent-ruby (1.2.0)
|
37
36
|
crass (1.0.6)
|
38
37
|
diff-lcs (1.5.0)
|
39
|
-
ecs-logging (1.0.0)
|
40
38
|
erubi (1.12.0)
|
41
39
|
google-protobuf (4.27.4-x86_64-linux)
|
42
40
|
bigdecimal
|
@@ -335,7 +333,6 @@ PLATFORMS
|
|
335
333
|
x86_64-linux
|
336
334
|
|
337
335
|
DEPENDENCIES
|
338
|
-
ecs-logging (~> 1.0)
|
339
336
|
lograge
|
340
337
|
logstash-event
|
341
338
|
opentelemetry-exporter-otlp (~> 0.28)
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'logger'
|
4
|
+
require 'time'
|
5
|
+
require 'active_support/logger_silence'
|
6
|
+
|
7
|
+
module Loggable
|
8
|
+
module Logfmt
|
9
|
+
# A structured logger that formats log messages in a key-value style using Logfmt formatting
|
10
|
+
# This has been adapted from https://github.com/cyberdelia/logfmt-ruby/
|
11
|
+
class Logger < ::Logger
|
12
|
+
def initialize(*args, **kwargs)
|
13
|
+
super
|
14
|
+
@formatter ||= KeyValueFormatter.new
|
15
|
+
end
|
16
|
+
|
17
|
+
# Include the LoggerSilence module to fix the incompatibility with ActiveSupport::LoggerSilence whe
|
18
|
+
# Rails.application.config.assets.quiet option is set to true, but do not include the module for the
|
19
|
+
# test environment as it causes issues with ActiveSupport::LoggerThreadSafeLevel::IsolatedExecutionState.
|
20
|
+
def self.include_logger_silence
|
21
|
+
include ActiveSupport::LoggerSilence
|
22
|
+
end
|
23
|
+
|
24
|
+
# Custom formatter class that renders logs as in a key-value style using Logfmt formatting
|
25
|
+
class KeyValueFormatter < ::Logger::Formatter
|
26
|
+
def call(severity, timestamp, progname, msg)
|
27
|
+
%(time=#{datetime(timestamp)} severity=#{severity.ljust(5)}#{progname(progname)} #{message(msg)}\n)
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def datetime(time)
|
33
|
+
time.utc.iso8601(3)
|
34
|
+
end
|
35
|
+
|
36
|
+
def message(msg)
|
37
|
+
return unless msg
|
38
|
+
|
39
|
+
if msg.respond_to?(:to_hash)
|
40
|
+
pairs = msg.to_hash.map { |k, v| format_pair(k, v) }
|
41
|
+
pairs.compact.join(' ')
|
42
|
+
else
|
43
|
+
format_pair('message', msg)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def format_pair(key, value)
|
48
|
+
return nil if value.nil?
|
49
|
+
|
50
|
+
# Return a bare key when the value is a `TrueClass`
|
51
|
+
return key if value == true
|
52
|
+
|
53
|
+
"#{key}=#{format_value(value)}"
|
54
|
+
end
|
55
|
+
|
56
|
+
def progname(progname)
|
57
|
+
return nil unless progname
|
58
|
+
|
59
|
+
# Format this pair like any other to ensure quoting, escaping, etc…,
|
60
|
+
# But we also need a leading space so we can interpolate the resulting
|
61
|
+
# key/value pair into our log line.
|
62
|
+
" #{format_pair(' progname', progname)}"
|
63
|
+
end
|
64
|
+
|
65
|
+
def format_value(value)
|
66
|
+
if value.is_a?(Float)
|
67
|
+
format('%.3f', value)
|
68
|
+
elsif value.is_a?(Time)
|
69
|
+
datetime(value)
|
70
|
+
elsif value.respond_to?(:to_ary)
|
71
|
+
format_value(
|
72
|
+
"[#{Array(value).map { |v| format_value(v) }.join(', ')}]"
|
73
|
+
)
|
74
|
+
else
|
75
|
+
# Interpolating due to a weird/subtle behaviour possible in #to_s.
|
76
|
+
# Namely, it's possible it doesn't actually return a String:
|
77
|
+
# https://github.com/ruby/spec/blob/3affe1e54fcd11918a242ad5d4a7ba895ee30c4c/language/string_spec.rb#L130-L141
|
78
|
+
value = "#{value}" # rubocop:disable Style/RedundantInterpolation
|
79
|
+
value = value.dump if value.match?(/[[:space:]]|[[:cntrl:]]/) # wrap in quotes and escape control characters
|
80
|
+
value
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
data/lib/loggable/railtie.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'lograge'
|
4
4
|
require 'rails'
|
5
|
+
require 'opentelemetry/sdk'
|
5
6
|
|
6
7
|
module Loggable
|
7
8
|
# Railtie to configure logging before rails starts
|
@@ -12,13 +13,14 @@ module Loggable
|
|
12
13
|
config.loggable.current_user_method = :current_user
|
13
14
|
|
14
15
|
# Initializer runs before initialize_logger (found in Bootstrap) so from the very beginning we are logging using
|
15
|
-
# the
|
16
|
+
# the logfmt format, even during the initialization process
|
16
17
|
# rubocop:disable Metrics/BlockLength
|
17
18
|
initializer :loggable_web, before: :initialize_logger do
|
18
19
|
Rails.application.configure do
|
19
20
|
production_like = Rails.env.production? || config.loggable.production_like
|
20
21
|
if production_like
|
21
|
-
|
22
|
+
Loggable::Logfmt::Logger.include_logger_silence if Rails.application.config.assets.quiet
|
23
|
+
Rails.logger = Loggable::Logfmt::Logger.new($stdout)
|
22
24
|
Rails.logger.level = ActiveSupport::Logger.const_get(config.log_level.to_s.upcase || 'INFO')
|
23
25
|
|
24
26
|
Loggable::OpenTelemetryConfig.configure(Rails.application.class.module_parent_name.underscore.dasherize)
|
@@ -32,22 +34,26 @@ module Loggable
|
|
32
34
|
if controller.respond_to?(config.loggable.current_user_method)
|
33
35
|
user_id = controller.send(config.loggable.current_user_method).try(:id)
|
34
36
|
end
|
37
|
+
|
35
38
|
{
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
status: response_code
|
39
|
+
'source.ip': controller.request.ip,
|
40
|
+
'user.id': user_id,
|
41
|
+
status: response_code,
|
42
|
+
span_id: OpenTelemetry::Trace.current_span.context.hex_span_id,
|
43
|
+
trace_id: OpenTelemetry::Trace.current_span.context.hex_trace_id
|
42
44
|
}
|
43
45
|
end
|
44
46
|
config.lograge.custom_options = lambda do |event|
|
45
47
|
return if event.payload[:params].blank?
|
46
48
|
|
47
49
|
exceptions = %w[controller action format id]
|
48
|
-
|
50
|
+
params = event.payload[:params].except(*exceptions)
|
51
|
+
# append a suffix to each param
|
52
|
+
params.each_with_object({}) do |(key, value), result|
|
53
|
+
result["params.#{key}"] = value
|
54
|
+
end
|
49
55
|
end
|
50
|
-
config.lograge.formatter =
|
56
|
+
config.lograge.formatter = ::Lograge::Formatters::Raw.new
|
51
57
|
end
|
52
58
|
end
|
53
59
|
# rubocop:enable Metrics/BlockLength
|
@@ -56,7 +62,7 @@ module Loggable
|
|
56
62
|
Rails.application.configure do
|
57
63
|
if defined?(Delayed::Worker)
|
58
64
|
if Rails.env.production? || config.loggable.production_like
|
59
|
-
Delayed::Worker.logger = ::
|
65
|
+
Delayed::Worker.logger = Loggable::Logfmt::Logger.new($stdout)
|
60
66
|
Delayed::Worker.logger.level = ActiveSupport::Logger.const_get(config.log_level.to_s.upcase || 'INFO')
|
61
67
|
Loggable::OpenTelemetryConfig.configure("#{Rails.application.class.module_parent_name.underscore.dasherize}
|
62
68
|
-worker")
|
data/lib/loggable/version.rb
CHANGED
@@ -3,8 +3,7 @@
|
|
3
3
|
require_relative 'loggable/version'
|
4
4
|
require_relative 'loggable/railtie' if defined?(Rails::Railtie)
|
5
5
|
require_relative 'loggable/opentelemetry_config'
|
6
|
-
require_relative 'loggable/
|
7
|
-
require_relative 'loggable/lograge/formatter'
|
6
|
+
require_relative 'loggable/logfmt/logger'
|
8
7
|
|
9
8
|
module ResearchableLoggable
|
10
9
|
class Error < StandardError
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: researchable_loggable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Researchable
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-11-
|
11
|
+
date: 2024-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: ecs-logging
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '1.0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: lograge
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,119 +100,19 @@ files:
|
|
114
100
|
- LICENSE.txt
|
115
101
|
- README.md
|
116
102
|
- Rakefile
|
117
|
-
- lib/loggable/
|
118
|
-
- lib/loggable/lograge/formatter.rb
|
103
|
+
- lib/loggable/logfmt/logger.rb
|
119
104
|
- lib/loggable/opentelemetry_config.rb
|
120
105
|
- lib/loggable/railtie.rb
|
121
106
|
- lib/loggable/version.rb
|
122
107
|
- lib/researchable_loggable.rb
|
123
|
-
- node_modules/semantic-release-rubygem/src/__tests__/fixtures/invalid-version-file/lib/test-gem/version.rb
|
124
|
-
- node_modules/semantic-release-rubygem/src/__tests__/fixtures/prerelease/lib/test-gem/version.rb
|
125
|
-
- node_modules/semantic-release-rubygem/src/__tests__/fixtures/valid/lib/test-gem/version.rb
|
126
108
|
- sig/loggable.rbs
|
127
|
-
|
128
|
-
- vendor/ruby/ruby/3.2.0/gems/actionview-7.0.4.2/lib/action_view/version.rb
|
129
|
-
- vendor/ruby/ruby/3.2.0/gems/activesupport-7.0.4.2/lib/active_support/version.rb
|
130
|
-
- vendor/ruby/ruby/3.2.0/gems/builder-3.2.4/lib/builder/version.rb
|
131
|
-
- vendor/ruby/ruby/3.2.0/gems/bundler-2.4.6/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb
|
132
|
-
- vendor/ruby/ruby/3.2.0/gems/bundler-2.4.6/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb
|
133
|
-
- vendor/ruby/ruby/3.2.0/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/version.rb
|
134
|
-
- vendor/ruby/ruby/3.2.0/gems/bundler-2.4.6/lib/bundler/vendor/uri/lib/uri/version.rb
|
135
|
-
- vendor/ruby/ruby/3.2.0/gems/bundler-2.4.6/lib/bundler/version.rb
|
136
|
-
- vendor/ruby/ruby/3.2.0/gems/concurrent-ruby-1.2.0/lib/concurrent-ruby/concurrent/version.rb
|
137
|
-
- vendor/ruby/ruby/3.2.0/gems/crass-1.0.6/lib/crass/version.rb
|
138
|
-
- vendor/ruby/ruby/3.2.0/gems/ecs-logging-1.0.0/lib/ecs_logging/version.rb
|
139
|
-
- vendor/ruby/ruby/3.2.0/gems/googleapis-common-protos-types-1.15.0/lib/googleapis/common/protos/types/version.rb
|
140
|
-
- vendor/ruby/ruby/3.2.0/gems/i18n-1.12.0/lib/i18n/version.rb
|
141
|
-
- vendor/ruby/ruby/3.2.0/gems/lograge-0.12.0/lib/lograge/version.rb
|
142
|
-
- vendor/ruby/ruby/3.2.0/gems/loofah-2.19.1/lib/loofah/version.rb
|
143
|
-
- vendor/ruby/ruby/3.2.0/gems/method_source-1.0.0/lib/method_source/version.rb
|
144
|
-
- vendor/ruby/ruby/3.2.0/gems/nokogiri-1.14.1-x86_64-linux/lib/nokogiri/version.rb
|
145
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-api-1.3.0/lib/opentelemetry/version.rb
|
146
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-common-0.21.0/lib/opentelemetry/common/version.rb
|
147
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-exporter-otlp-0.28.1/lib/opentelemetry/exporter/otlp/version.rb
|
148
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-helpers-mysql-0.1.1/lib/opentelemetry/helpers/mysql/version.rb
|
149
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-helpers-sql-obfuscation-0.2.0/lib/opentelemetry/helpers/sql_obfuscation/version.rb
|
150
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-action_mailer-0.1.0/lib/opentelemetry/instrumentation/action_mailer/version.rb
|
151
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-action_pack-0.9.0/lib/opentelemetry/instrumentation/action_pack/version.rb
|
152
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-action_view-0.7.3/lib/opentelemetry/instrumentation/action_view/version.rb
|
153
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-active_job-0.7.7/lib/opentelemetry/instrumentation/active_job/version.rb
|
154
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-active_model_serializers-0.20.2/lib/opentelemetry/instrumentation/active_model_serializers/version.rb
|
155
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-active_record-0.7.4/lib/opentelemetry/instrumentation/active_record/version.rb
|
156
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-active_support-0.6.0/lib/opentelemetry/instrumentation/active_support/version.rb
|
157
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-all-0.63.0/lib/opentelemetry/instrumentation/all/version.rb
|
158
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-aws_lambda-0.1.1/lib/opentelemetry/instrumentation/aws_lambda/version.rb
|
159
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-aws_sdk-0.5.4/lib/opentelemetry/instrumentation/aws_sdk/version.rb
|
160
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-base-0.22.6/lib/opentelemetry/instrumentation/version.rb
|
161
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-bunny-0.21.4/lib/opentelemetry/instrumentation/bunny/version.rb
|
162
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-concurrent_ruby-0.21.4/lib/opentelemetry/instrumentation/concurrent_ruby/version.rb
|
163
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-dalli-0.25.4/lib/opentelemetry/instrumentation/dalli/version.rb
|
164
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-delayed_job-0.22.4/lib/opentelemetry/instrumentation/delayed_job/version.rb
|
165
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-ethon-0.21.8/lib/opentelemetry/instrumentation/ethon/version.rb
|
166
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-excon-0.22.4/lib/opentelemetry/instrumentation/excon/version.rb
|
167
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-faraday-0.24.6/lib/opentelemetry/instrumentation/faraday/version.rb
|
168
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-grape-0.2.0/lib/opentelemetry/instrumentation/grape/version.rb
|
169
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-graphql-0.28.4/lib/opentelemetry/instrumentation/graphql/version.rb
|
170
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-gruf-0.2.1/lib/opentelemetry/instrumentation/gruf/version.rb
|
171
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-http-0.23.4/lib/opentelemetry/instrumentation/http/version.rb
|
172
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-http_client-0.22.7/lib/opentelemetry/instrumentation/http_client/version.rb
|
173
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-koala-0.20.5/lib/opentelemetry/instrumentation/koala/version.rb
|
174
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-lmdb-0.22.3/lib/opentelemetry/instrumentation/lmdb/version.rb
|
175
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-mongo-0.22.4/lib/opentelemetry/instrumentation/mongo/version.rb
|
176
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-mysql2-0.27.2/lib/opentelemetry/instrumentation/mysql2/version.rb
|
177
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-net_http-0.22.7/lib/opentelemetry/instrumentation/net/http/version.rb
|
178
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-pg-0.28.0/lib/opentelemetry/instrumentation/pg/version.rb
|
179
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-que-0.8.4/lib/opentelemetry/instrumentation/que/version.rb
|
180
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-racecar-0.3.4/lib/opentelemetry/instrumentation/racecar/version.rb
|
181
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-rack-0.24.6/lib/opentelemetry/instrumentation/rack/version.rb
|
182
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-rails-0.31.2/lib/opentelemetry/instrumentation/rails/version.rb
|
183
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-rake-0.2.2/lib/opentelemetry/instrumentation/rake/version.rb
|
184
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-rdkafka-0.4.8/lib/opentelemetry/instrumentation/rdkafka/version.rb
|
185
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-redis-0.25.7/lib/opentelemetry/instrumentation/redis/version.rb
|
186
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-resque-0.5.2/lib/opentelemetry/instrumentation/resque/version.rb
|
187
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-restclient-0.22.7/lib/opentelemetry/instrumentation/restclient/version.rb
|
188
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-ruby_kafka-0.21.3/lib/opentelemetry/instrumentation/ruby_kafka/version.rb
|
189
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-sidekiq-0.25.7/lib/opentelemetry/instrumentation/sidekiq/version.rb
|
190
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-sinatra-0.24.1/lib/opentelemetry/instrumentation/sinatra/version.rb
|
191
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-trilogy-0.59.3/lib/opentelemetry/instrumentation/trilogy/version.rb
|
192
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-registry-0.3.1/lib/opentelemetry/instrumentation/registry/version.rb
|
193
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-sdk-1.5.0/lib/opentelemetry/sdk/version.rb
|
194
|
-
- vendor/ruby/ruby/3.2.0/gems/opentelemetry-semantic_conventions-1.10.1/lib/opentelemetry/semantic_conventions/version.rb
|
195
|
-
- vendor/ruby/ruby/3.2.0/gems/parallel-1.22.1/lib/parallel/version.rb
|
196
|
-
- vendor/ruby/ruby/3.2.0/gems/parser-3.2.1.1/lib/parser/version.rb
|
197
|
-
- vendor/ruby/ruby/3.2.0/gems/rack-2.2.6.2/lib/rack/version.rb
|
198
|
-
- vendor/ruby/ruby/3.2.0/gems/rack-test-2.0.2/lib/rack/test/version.rb
|
199
|
-
- vendor/ruby/ruby/3.2.0/gems/rails-dom-testing-2.0.3/lib/rails/dom/testing/version.rb
|
200
|
-
- vendor/ruby/ruby/3.2.0/gems/rails-html-sanitizer-1.5.0/lib/rails/html/sanitizer/version.rb
|
201
|
-
- vendor/ruby/ruby/3.2.0/gems/railties-7.0.4.2/lib/rails/version.rb
|
202
|
-
- vendor/ruby/ruby/3.2.0/gems/rainbow-3.1.1/lib/rainbow/version.rb
|
203
|
-
- vendor/ruby/ruby/3.2.0/gems/rake-13.0.6/lib/rake/version.rb
|
204
|
-
- vendor/ruby/ruby/3.2.0/gems/regexp_parser-2.7.0/lib/regexp_parser/version.rb
|
205
|
-
- vendor/ruby/ruby/3.2.0/gems/request_store-1.5.1/lib/request_store/version.rb
|
206
|
-
- vendor/ruby/ruby/3.2.0/gems/rspec-3.12.0/lib/rspec/version.rb
|
207
|
-
- vendor/ruby/ruby/3.2.0/gems/rspec-core-3.12.1/lib/rspec/core/version.rb
|
208
|
-
- vendor/ruby/ruby/3.2.0/gems/rspec-expectations-3.12.2/lib/rspec/expectations/version.rb
|
209
|
-
- vendor/ruby/ruby/3.2.0/gems/rspec-mocks-3.12.3/lib/rspec/mocks/version.rb
|
210
|
-
- vendor/ruby/ruby/3.2.0/gems/rspec-support-3.12.0/lib/rspec/support/version.rb
|
211
|
-
- vendor/ruby/ruby/3.2.0/gems/rubocop-1.23.0/lib/rubocop/cli/command/version.rb
|
212
|
-
- vendor/ruby/ruby/3.2.0/gems/rubocop-1.23.0/lib/rubocop/version.rb
|
213
|
-
- vendor/ruby/ruby/3.2.0/gems/rubocop-ast-1.27.0/lib/rubocop/ast/version.rb
|
214
|
-
- vendor/ruby/ruby/3.2.0/gems/rubocop-performance-1.12.0/lib/rubocop/performance/version.rb
|
215
|
-
- vendor/ruby/ruby/3.2.0/gems/rubocop-rails-2.12.4/lib/rubocop/rails/version.rb
|
216
|
-
- vendor/ruby/ruby/3.2.0/gems/rubocop-rake-0.6.0/lib/rubocop/rake/version.rb
|
217
|
-
- vendor/ruby/ruby/3.2.0/gems/rubocop-rspec-2.6.0/lib/rubocop/rspec/version.rb
|
218
|
-
- vendor/ruby/ruby/3.2.0/gems/ruboguide-1.0.0/lib/ruboguide/version.rb
|
219
|
-
- vendor/ruby/ruby/3.2.0/gems/ruby-progressbar-1.13.0/lib/ruby-progressbar/version.rb
|
220
|
-
- vendor/ruby/ruby/3.2.0/gems/thor-1.2.1/lib/thor/version.rb
|
221
|
-
- vendor/ruby/ruby/3.2.0/gems/tzinfo-2.0.6/lib/tzinfo/version.rb
|
222
|
-
- vendor/ruby/ruby/3.2.0/gems/zeitwerk-2.6.7/lib/zeitwerk/version.rb
|
223
|
-
homepage: https://gitlab.com/researchable/general/gems/loggable/-/blob/v1.3.1/README.md
|
109
|
+
homepage: https://gitlab.com/researchable/general/gems/loggable/-/blob/v1.4.0/README.md
|
224
110
|
licenses:
|
225
111
|
- MIT
|
226
112
|
metadata:
|
227
|
-
homepage_uri: https://gitlab.com/researchable/general/gems/loggable/-/blob/v1.
|
113
|
+
homepage_uri: https://gitlab.com/researchable/general/gems/loggable/-/blob/v1.4.0/README.md
|
228
114
|
source_code_uri: https://gitlab.com/researchable/general/gems/loggable
|
229
|
-
changelog_uri: https://gitlab.com/researchable/general/gems/loggable/-/blob/v1.
|
115
|
+
changelog_uri: https://gitlab.com/researchable/general/gems/loggable/-/blob/v1.4.0/CHANGELOG.md
|
230
116
|
post_install_message:
|
231
117
|
rdoc_options: []
|
232
118
|
require_paths:
|
@@ -1,55 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'ecs_logging/formatter'
|
4
|
-
|
5
|
-
module Loggable
|
6
|
-
module EcsLogging
|
7
|
-
# A monkey patch to the ::EcsLogging::Formatter to customize how messages from lograge are rendered
|
8
|
-
module FormatterMonkeyPatch
|
9
|
-
def call(severity, time, progname, msg, **extras)
|
10
|
-
base = {
|
11
|
-
'@timestamp': time.utc.iso8601(3),
|
12
|
-
'log.level': severity,
|
13
|
-
message: msg,
|
14
|
-
'ecs.version': '1.4.0'
|
15
|
-
}
|
16
|
-
|
17
|
-
base['log.logger'] = progname if progname
|
18
|
-
|
19
|
-
base.merge!(msg.except(:lograge)) if msg.is_a?(Hash) && msg.key?(:lograge)
|
20
|
-
base.merge!(extras) if extras
|
21
|
-
|
22
|
-
"#{JSON.fast_generate(base)}\n"
|
23
|
-
end
|
24
|
-
|
25
|
-
class << self
|
26
|
-
def apply_patch
|
27
|
-
const = find_const
|
28
|
-
mtd = find_method(const)
|
29
|
-
|
30
|
-
# byebug
|
31
|
-
const.prepend(self) if const && mtd && mtd.arity == -5
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def find_const
|
37
|
-
Kernel.const_get('::EcsLogging::Formatter')
|
38
|
-
rescue NameError
|
39
|
-
puts '[WARN] ::EcsLogging::Formatter not found. Patch could not be applied.' # rubocop:disable Rails/Output
|
40
|
-
end
|
41
|
-
|
42
|
-
def find_method(const)
|
43
|
-
return unless const
|
44
|
-
|
45
|
-
method_name = :call
|
46
|
-
const.instance_method(method_name)
|
47
|
-
rescue NameError
|
48
|
-
puts "[WARN] '#{method_name}' method not found in '#{const}'. Patch could not be applied." # rubocop:disable Rails/Output
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
Loggable::EcsLogging::FormatterMonkeyPatch.apply_patch
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'lograge'
|
4
|
-
require 'active_support/core_ext/array'
|
5
|
-
|
6
|
-
module Loggable
|
7
|
-
module Lograge
|
8
|
-
# Custom formatter class that renders logs as ruby objects with just the ecs fields generated by the logger, the
|
9
|
-
# message, and a lograge flag so the ECS logger knows to process this further before rendering
|
10
|
-
class Formatter < ::Lograge::Formatters::KeyValue
|
11
|
-
def call(data)
|
12
|
-
(data[:ecs] || {}).merge(message: super(data), lograge: true)
|
13
|
-
end
|
14
|
-
|
15
|
-
protected
|
16
|
-
|
17
|
-
def fields_to_display(data)
|
18
|
-
data.keys.excluding(%i[ecs])
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# frozen_string_literal: false
|
2
|
-
|
3
|
-
module Bundler
|
4
|
-
VERSION = "2.4.6".freeze
|
5
|
-
|
6
|
-
def self.bundler_major_version
|
7
|
-
@bundler_major_version ||= VERSION.split(".").first.to_i
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.gem_version
|
11
|
-
@gem_version ||= Gem::Version.create(VERSION)
|
12
|
-
end
|
13
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# Licensed to Elasticsearch B.V. under one or more contributor
|
2
|
-
# license agreements. See the NOTICE file distributed with
|
3
|
-
# this work for additional information regarding copyright
|
4
|
-
# ownership. Elasticsearch B.V. licenses this file to you under
|
5
|
-
# the Apache License, Version 2.0 (the "License"); you may
|
6
|
-
# not use this file except in compliance with the License.
|
7
|
-
# You may obtain a copy of the License at
|
8
|
-
#
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
#
|
11
|
-
# Unless required by applicable law or agreed to in writing,
|
12
|
-
# software distributed under the License is distributed on an
|
13
|
-
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
14
|
-
# KIND, either express or implied. See the License for the
|
15
|
-
# specific language governing permissions and limitations
|
16
|
-
# under the License.
|
17
|
-
|
18
|
-
# frozen_string_literal: true
|
19
|
-
|
20
|
-
module EcsLogging
|
21
|
-
VERSION = "1.0.0"
|
22
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Copyright 2021 Google LLC
|
4
|
-
#
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
# you may not use this file except in compliance with the License.
|
7
|
-
# You may obtain a copy of the License at
|
8
|
-
#
|
9
|
-
# https://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
#
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
# See the License for the specific language governing permissions and
|
15
|
-
# limitations under the License.
|
16
|
-
|
17
|
-
module Google
|
18
|
-
module CommonProtos
|
19
|
-
module Types
|
20
|
-
VERSION = "1.15.0".freeze
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|