researchable_loggable 1.3.1 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|