semantic_logger 4.16.1 → 4.17.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/README.md +1 -0
- data/lib/semantic_logger/appender/async.rb +0 -1
- data/lib/semantic_logger/appender/async_batch.rb +1 -2
- data/lib/semantic_logger/appender/bugsnag.rb +3 -2
- data/lib/semantic_logger/appender/cloudwatch_logs.rb +150 -0
- data/lib/semantic_logger/appender/elasticsearch.rb +0 -1
- data/lib/semantic_logger/appender/elasticsearch_http.rb +0 -1
- data/lib/semantic_logger/appender/file.rb +6 -2
- data/lib/semantic_logger/appender/graylog.rb +2 -2
- data/lib/semantic_logger/appender/honeybadger.rb +1 -1
- data/lib/semantic_logger/appender/honeybadger_insights.rb +1 -1
- data/lib/semantic_logger/appender/http.rb +0 -1
- data/lib/semantic_logger/appender/kafka.rb +2 -2
- data/lib/semantic_logger/appender/loki.rb +62 -0
- data/lib/semantic_logger/appender/mongodb.rb +2 -2
- data/lib/semantic_logger/appender/new_relic.rb +3 -2
- data/lib/semantic_logger/appender/new_relic_logs.rb +16 -5
- data/lib/semantic_logger/appender/open_telemetry.rb +83 -0
- data/lib/semantic_logger/appender/sentry.rb +3 -2
- data/lib/semantic_logger/appender/sentry_ruby.rb +1 -1
- data/lib/semantic_logger/appender/splunk_http.rb +0 -1
- data/lib/semantic_logger/appender/syslog.rb +1 -2
- data/lib/semantic_logger/appender/tcp.rb +2 -1
- data/lib/semantic_logger/appender.rb +3 -0
- data/lib/semantic_logger/base.rb +7 -13
- data/lib/semantic_logger/formatters/base.rb +2 -1
- data/lib/semantic_logger/formatters/color.rb +1 -1
- data/lib/semantic_logger/formatters/fluentd.rb +1 -1
- data/lib/semantic_logger/formatters/json.rb +2 -2
- data/lib/semantic_logger/formatters/logfmt.rb +6 -6
- data/lib/semantic_logger/formatters/loki.rb +157 -0
- data/lib/semantic_logger/formatters/new_relic_logs.rb +74 -57
- data/lib/semantic_logger/formatters/open_telemetry.rb +40 -0
- data/lib/semantic_logger/formatters/signalfx.rb +0 -1
- data/lib/semantic_logger/formatters/syslog.rb +3 -2
- data/lib/semantic_logger/formatters/syslog_cee.rb +3 -2
- data/lib/semantic_logger/formatters.rb +14 -12
- data/lib/semantic_logger/log.rb +5 -5
- data/lib/semantic_logger/loggable.rb +1 -1
- data/lib/semantic_logger/logger.rb +1 -1
- data/lib/semantic_logger/metric/new_relic.rb +2 -1
- data/lib/semantic_logger/metric/signalfx.rb +0 -1
- data/lib/semantic_logger/reporters/minitest.rb +6 -3
- data/lib/semantic_logger/semantic_logger.rb +1 -1
- data/lib/semantic_logger/subscriber.rb +3 -2
- data/lib/semantic_logger/sync_processor.rb +4 -4
- data/lib/semantic_logger/test/capture_log_events.rb +1 -1
- data/lib/semantic_logger/test/minitest.rb +8 -6
- data/lib/semantic_logger/utils.rb +2 -1
- data/lib/semantic_logger/version.rb +1 -1
- metadata +10 -10
@@ -33,11 +33,14 @@ module SemanticLogger
|
|
33
33
|
|
34
34
|
def after_test(test)
|
35
35
|
if test.error?
|
36
|
-
logger.benchmark_error("FAIL #{test.class_name} #{test.name}", duration: test.time * 1_000,
|
36
|
+
logger.benchmark_error("FAIL #{test.class_name} #{test.name}", duration: test.time * 1_000,
|
37
|
+
metric: "minitest/fail")
|
37
38
|
elsif test.skipped?
|
38
|
-
logger.benchmark_warn("SKIP #{test.class_name} #{test.name}", duration: test.time * 1_000,
|
39
|
+
logger.benchmark_warn("SKIP #{test.class_name} #{test.name}", duration: test.time * 1_000,
|
40
|
+
metric: "minitest/skip")
|
39
41
|
else
|
40
|
-
logger.benchmark_info("PASS #{test.class_name} #{test.name}", duration: test.time * 1_000,
|
42
|
+
logger.benchmark_info("PASS #{test.class_name} #{test.name}", duration: test.time * 1_000,
|
43
|
+
metric: "minitest/pass")
|
41
44
|
end
|
42
45
|
end
|
43
46
|
end
|
@@ -82,7 +82,7 @@ module SemanticLogger
|
|
82
82
|
end
|
83
83
|
|
84
84
|
@application = ENV["SEMANTIC_LOGGER_APP"] || "Semantic Logger"
|
85
|
-
@environment = ENV["SEMANTIC_LOGGER_ENV"] || ENV["RAILS_ENV"] || ENV
|
85
|
+
@environment = ENV["SEMANTIC_LOGGER_ENV"] || ENV["RAILS_ENV"] || ENV.fetch("RACK_ENV", nil)
|
86
86
|
|
87
87
|
# Add a new logging appender as a new destination for all log messages
|
88
88
|
# emitted from Semantic Logger
|
@@ -70,7 +70,7 @@ module SemanticLogger
|
|
70
70
|
|
71
71
|
# Whether this log entry meets the criteria to be logged by this appender.
|
72
72
|
def should_log?(log)
|
73
|
-
super
|
73
|
+
super && (log.metric_only? ? metrics? : true)
|
74
74
|
end
|
75
75
|
|
76
76
|
# Whether this appender is logging to stdout or stderror
|
@@ -108,7 +108,8 @@ module SemanticLogger
|
|
108
108
|
# metrics: [Boolean]
|
109
109
|
# Whether to log metric only entries with this subscriber.
|
110
110
|
# Default: false
|
111
|
-
def initialize(level: nil, formatter: nil, filter: nil, application: nil, environment: nil, host: nil,
|
111
|
+
def initialize(level: nil, formatter: nil, filter: nil, application: nil, environment: nil, host: nil,
|
112
|
+
metrics: false, &block)
|
112
113
|
self.formatter = block || formatter
|
113
114
|
@application = application
|
114
115
|
@environment = environment
|
@@ -4,12 +4,12 @@ module SemanticLogger
|
|
4
4
|
# Appenders are designed to only be used by one thread at a time, so all calls
|
5
5
|
# are monitor protected in case SyncProcessor is being used in a multi-threaded environment.
|
6
6
|
class SyncProcessor
|
7
|
-
def add(
|
8
|
-
@monitor.synchronize { @appenders.add(
|
7
|
+
def add(...)
|
8
|
+
@monitor.synchronize { @appenders.add(...) }
|
9
9
|
end
|
10
10
|
|
11
|
-
def log(
|
12
|
-
@monitor.synchronize { @appenders.log(
|
11
|
+
def log(...)
|
12
|
+
@monitor.synchronize { @appenders.log(...) }
|
13
13
|
end
|
14
14
|
|
15
15
|
def flush
|
@@ -61,11 +61,11 @@ module SemanticLogger
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
64
|
+
return unless exception_includes
|
65
|
+
|
66
|
+
payload_includes.each_pair do |key, expected|
|
67
|
+
actual = event.exception.send(key)
|
68
|
+
assert_semantic_logger_entry(event, "Exception #{name}", expected, actual)
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
@@ -78,7 +78,9 @@ module SemanticLogger
|
|
78
78
|
when :nil
|
79
79
|
assert_nil actual, "Expected nil #{name} for log event: #{event.to_h.inspect}"
|
80
80
|
when Class
|
81
|
-
assert actual.is_a?(expected),
|
81
|
+
assert actual.is_a?(expected), lambda {
|
82
|
+
"Type #{expected} expected for #{name} in log event: #{event.to_h.inspect}"
|
83
|
+
}
|
82
84
|
else
|
83
85
|
assert_equal expected, actual, "Mismatched #{name} for log event: #{event.to_h.inspect}"
|
84
86
|
end
|
@@ -7,7 +7,8 @@ module SemanticLogger
|
|
7
7
|
begin
|
8
8
|
Object.const_get(klass)
|
9
9
|
rescue NameError
|
10
|
-
raise(ArgumentError,
|
10
|
+
raise(ArgumentError,
|
11
|
+
"Could not convert symbol: #{symbol.inspect} to a class in: #{namespace}. Looking for: #{klass}")
|
11
12
|
end
|
12
13
|
end
|
13
14
|
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: semantic_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Reid Morrison
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: concurrent-ruby
|
@@ -24,8 +23,6 @@ dependencies:
|
|
24
23
|
- - "~>"
|
25
24
|
- !ruby/object:Gem::Version
|
26
25
|
version: '1.0'
|
27
|
-
description:
|
28
|
-
email:
|
29
26
|
executables: []
|
30
27
|
extensions: []
|
31
28
|
extra_rdoc_files: []
|
@@ -39,6 +36,7 @@ files:
|
|
39
36
|
- lib/semantic_logger/appender/async.rb
|
40
37
|
- lib/semantic_logger/appender/async_batch.rb
|
41
38
|
- lib/semantic_logger/appender/bugsnag.rb
|
39
|
+
- lib/semantic_logger/appender/cloudwatch_logs.rb
|
42
40
|
- lib/semantic_logger/appender/elasticsearch.rb
|
43
41
|
- lib/semantic_logger/appender/elasticsearch_http.rb
|
44
42
|
- lib/semantic_logger/appender/file.rb
|
@@ -48,9 +46,11 @@ files:
|
|
48
46
|
- lib/semantic_logger/appender/http.rb
|
49
47
|
- lib/semantic_logger/appender/io.rb
|
50
48
|
- lib/semantic_logger/appender/kafka.rb
|
49
|
+
- lib/semantic_logger/appender/loki.rb
|
51
50
|
- lib/semantic_logger/appender/mongodb.rb
|
52
51
|
- lib/semantic_logger/appender/new_relic.rb
|
53
52
|
- lib/semantic_logger/appender/new_relic_logs.rb
|
53
|
+
- lib/semantic_logger/appender/open_telemetry.rb
|
54
54
|
- lib/semantic_logger/appender/rabbitmq.rb
|
55
55
|
- lib/semantic_logger/appender/sentry.rb
|
56
56
|
- lib/semantic_logger/appender/sentry_ruby.rb
|
@@ -72,8 +72,10 @@ files:
|
|
72
72
|
- lib/semantic_logger/formatters/fluentd.rb
|
73
73
|
- lib/semantic_logger/formatters/json.rb
|
74
74
|
- lib/semantic_logger/formatters/logfmt.rb
|
75
|
+
- lib/semantic_logger/formatters/loki.rb
|
75
76
|
- lib/semantic_logger/formatters/new_relic_logs.rb
|
76
77
|
- lib/semantic_logger/formatters/one_line.rb
|
78
|
+
- lib/semantic_logger/formatters/open_telemetry.rb
|
77
79
|
- lib/semantic_logger/formatters/raw.rb
|
78
80
|
- lib/semantic_logger/formatters/signalfx.rb
|
79
81
|
- lib/semantic_logger/formatters/syslog.rb
|
@@ -102,9 +104,8 @@ licenses:
|
|
102
104
|
metadata:
|
103
105
|
bug_tracker_uri: https://github.com/reidmorrison/semantic_logger/issues
|
104
106
|
documentation_uri: https://logger.rocketjob.io
|
105
|
-
source_code_uri: https://github.com/reidmorrison/semantic_logger/tree/
|
107
|
+
source_code_uri: https://github.com/reidmorrison/semantic_logger/tree/v4.17.0
|
106
108
|
rubygems_mfa_required: 'true'
|
107
|
-
post_install_message:
|
108
109
|
rdoc_options: []
|
109
110
|
require_paths:
|
110
111
|
- lib
|
@@ -112,15 +113,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
112
113
|
requirements:
|
113
114
|
- - ">="
|
114
115
|
- !ruby/object:Gem::Version
|
115
|
-
version: '2.
|
116
|
+
version: '2.7'
|
116
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
118
|
requirements:
|
118
119
|
- - ">="
|
119
120
|
- !ruby/object:Gem::Version
|
120
121
|
version: '0'
|
121
122
|
requirements: []
|
122
|
-
rubygems_version: 3.
|
123
|
-
signing_key:
|
123
|
+
rubygems_version: 3.6.9
|
124
124
|
specification_version: 4
|
125
125
|
summary: Feature rich logging framework, and replacement for existing Ruby & Rails
|
126
126
|
loggers.
|