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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -0
  3. data/lib/semantic_logger/appender/async.rb +0 -1
  4. data/lib/semantic_logger/appender/async_batch.rb +1 -2
  5. data/lib/semantic_logger/appender/bugsnag.rb +3 -2
  6. data/lib/semantic_logger/appender/cloudwatch_logs.rb +150 -0
  7. data/lib/semantic_logger/appender/elasticsearch.rb +0 -1
  8. data/lib/semantic_logger/appender/elasticsearch_http.rb +0 -1
  9. data/lib/semantic_logger/appender/file.rb +6 -2
  10. data/lib/semantic_logger/appender/graylog.rb +2 -2
  11. data/lib/semantic_logger/appender/honeybadger.rb +1 -1
  12. data/lib/semantic_logger/appender/honeybadger_insights.rb +1 -1
  13. data/lib/semantic_logger/appender/http.rb +0 -1
  14. data/lib/semantic_logger/appender/kafka.rb +2 -2
  15. data/lib/semantic_logger/appender/loki.rb +62 -0
  16. data/lib/semantic_logger/appender/mongodb.rb +2 -2
  17. data/lib/semantic_logger/appender/new_relic.rb +3 -2
  18. data/lib/semantic_logger/appender/new_relic_logs.rb +16 -5
  19. data/lib/semantic_logger/appender/open_telemetry.rb +83 -0
  20. data/lib/semantic_logger/appender/sentry.rb +3 -2
  21. data/lib/semantic_logger/appender/sentry_ruby.rb +1 -1
  22. data/lib/semantic_logger/appender/splunk_http.rb +0 -1
  23. data/lib/semantic_logger/appender/syslog.rb +1 -2
  24. data/lib/semantic_logger/appender/tcp.rb +2 -1
  25. data/lib/semantic_logger/appender.rb +3 -0
  26. data/lib/semantic_logger/base.rb +7 -13
  27. data/lib/semantic_logger/formatters/base.rb +2 -1
  28. data/lib/semantic_logger/formatters/color.rb +1 -1
  29. data/lib/semantic_logger/formatters/fluentd.rb +1 -1
  30. data/lib/semantic_logger/formatters/json.rb +2 -2
  31. data/lib/semantic_logger/formatters/logfmt.rb +6 -6
  32. data/lib/semantic_logger/formatters/loki.rb +157 -0
  33. data/lib/semantic_logger/formatters/new_relic_logs.rb +74 -57
  34. data/lib/semantic_logger/formatters/open_telemetry.rb +40 -0
  35. data/lib/semantic_logger/formatters/signalfx.rb +0 -1
  36. data/lib/semantic_logger/formatters/syslog.rb +3 -2
  37. data/lib/semantic_logger/formatters/syslog_cee.rb +3 -2
  38. data/lib/semantic_logger/formatters.rb +14 -12
  39. data/lib/semantic_logger/log.rb +5 -5
  40. data/lib/semantic_logger/loggable.rb +1 -1
  41. data/lib/semantic_logger/logger.rb +1 -1
  42. data/lib/semantic_logger/metric/new_relic.rb +2 -1
  43. data/lib/semantic_logger/metric/signalfx.rb +0 -1
  44. data/lib/semantic_logger/reporters/minitest.rb +6 -3
  45. data/lib/semantic_logger/semantic_logger.rb +1 -1
  46. data/lib/semantic_logger/subscriber.rb +3 -2
  47. data/lib/semantic_logger/sync_processor.rb +4 -4
  48. data/lib/semantic_logger/test/capture_log_events.rb +1 -1
  49. data/lib/semantic_logger/test/minitest.rb +8 -6
  50. data/lib/semantic_logger/utils.rb +2 -1
  51. data/lib/semantic_logger/version.rb +1 -1
  52. 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, metric: "minitest/fail")
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, metric: "minitest/skip")
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, metric: "minitest/pass")
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["RACK_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(log) && (log.metric_only? ? metrics? : true)
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, metrics: false, &block)
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(*args, &block)
8
- @monitor.synchronize { @appenders.add(*args, &block) }
7
+ def add(...)
8
+ @monitor.synchronize { @appenders.add(...) }
9
9
  end
10
10
 
11
- def log(*args, &block)
12
- @monitor.synchronize { @appenders.log(*args, &block) }
11
+ def log(...)
12
+ @monitor.synchronize { @appenders.log(...) }
13
13
  end
14
14
 
15
15
  def flush
@@ -34,7 +34,7 @@ module SemanticLogger
34
34
  end
35
35
 
36
36
  # Supports batching of log events
37
- def batch(logs)
37
+ def batch(_logs)
38
38
  @events += log
39
39
  end
40
40
 
@@ -61,11 +61,11 @@ module SemanticLogger
61
61
  end
62
62
  end
63
63
 
64
- if exception_includes
65
- payload_includes.each_pair do |key, expected|
66
- actual = event.exception.send(key)
67
- assert_semantic_logger_entry(event, "Exception #{name}", expected, actual)
68
- end
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), -> { "Type #{expected} expected for #{name} in log event: #{event.to_h.inspect}" }
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, "Could not convert symbol: #{symbol.inspect} to a class in: #{namespace}. Looking for: #{klass}")
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
 
@@ -1,3 +1,3 @@
1
1
  module SemanticLogger
2
- VERSION = "4.16.1".freeze
2
+ VERSION = "4.17.0".freeze
3
3
  end
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.16.1
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: 2024-09-05 00:00:00.000000000 Z
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/4.16.1
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.5'
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.5.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.