opentelemetry-instrumentation-logger 0.3.0 → 0.3.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7ae37d645049a1f22f307c54722237af0154d15d2a3201cbfcda16252659f947
4
- data.tar.gz: beea07fb4c1e3aff7bc98a3ad24fcf3d3c99004a067cc714903a10828a72fd60
3
+ metadata.gz: 41f27a5c61422ab60dde1ef7082b6f0b02debe73fc08530106b1d2eefccbf53d
4
+ data.tar.gz: 0edb80131565bb805f9c5734b0d9735b8c4b74480d7846ec0260af8350bf354d
5
5
  SHA512:
6
- metadata.gz: 0c4b929d1b234e55ad204d24d8057ab03e5c3a8d7a0d70eedd10304926a660c78db1b9683a4ae81b047c49206571cbeb340101505a45c2a458a87ee9d245eeb9
7
- data.tar.gz: 6028ea5e483313e03512df06690f675dff81a2d0f43c033d43121747b1f5378ab3fa69dc9935a5dd3e190260a2f47ffb21ce85c05676b25c7110a27657876bae
6
+ metadata.gz: 335cff2014c214e48fb15e0bbe2bd900f0714f32682fcfbbec0764b38bd0d8599fff91844d48389ca294d0fa37e45af3519aa8113d6da5bbb85450aaad1fb532
7
+ data.tar.gz: f7c857d464978b2e4b04734f6acdb34b4246f43d6d9b8bd92903efe937f1e8a61d1ec4cab64574fff032b41a0ef208b37d28e71b06eef513271ed558d8bdcf2e
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Release History: opentelemetry-instrumentation-logger
2
2
 
3
+ ### v0.3.1 / 2026-02-11
4
+
5
+ * FIXED: Prevent deadlock from recursive logging (#1944)
6
+
3
7
  ### v0.3.0 / 2025-10-28
4
8
 
5
9
  * ADDED: Use formatted_message in Ruby logger instrumentation
@@ -10,27 +10,40 @@ module OpenTelemetry
10
10
  module Patches
11
11
  # Instrumentation for methods from Ruby's Logger class
12
12
  module Logger
13
+ IN_OTEL_EMIT_KEY = :in_otel_emit
14
+
13
15
  attr_writer :skip_otel_emit
14
16
 
15
17
  def format_message(severity, datetime, progname, msg)
16
18
  formatted_message = super
17
- return formatted_message if skip_otel_emit?
18
-
19
- OpenTelemetry.logger_provider.logger(
20
- name: OpenTelemetry::Instrumentation::Logger::NAME,
21
- version: OpenTelemetry::Instrumentation::Logger::VERSION
22
- ).on_emit(
23
- severity_text: severity,
24
- severity_number: severity_number(severity),
25
- timestamp: datetime,
26
- body: formatted_message,
27
- context: OpenTelemetry::Context.current
28
- )
19
+
20
+ emit_to_otel(severity, datetime, formatted_message)
21
+
29
22
  formatted_message
30
23
  end
31
24
 
32
25
  private
33
26
 
27
+ def emit_to_otel(severity, datetime, body)
28
+ return if skip_otel_emit? || Thread.current[IN_OTEL_EMIT_KEY]
29
+
30
+ Thread.current[IN_OTEL_EMIT_KEY] = true
31
+ begin
32
+ OpenTelemetry.logger_provider.logger(
33
+ name: OpenTelemetry::Instrumentation::Logger::NAME,
34
+ version: OpenTelemetry::Instrumentation::Logger::VERSION
35
+ ).on_emit(
36
+ severity_text: severity,
37
+ severity_number: severity_number(severity),
38
+ timestamp: datetime,
39
+ body: body,
40
+ context: OpenTelemetry::Context.current
41
+ )
42
+ ensure
43
+ Thread.current[IN_OTEL_EMIT_KEY] = false
44
+ end
45
+ end
46
+
34
47
  def skip_otel_emit?
35
48
  @skip_otel_emit || false
36
49
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Logger
10
- VERSION = '0.3.0'
10
+ VERSION = '0.3.1'
11
11
  end
12
12
  end
13
13
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opentelemetry-instrumentation-logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-10-28 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: opentelemetry-instrumentation-base
@@ -61,10 +60,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby-contrib
61
60
  licenses:
62
61
  - Apache-2.0
63
62
  metadata:
64
- changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-logger/0.3.0/file/CHANGELOG.md
63
+ changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-logger/0.3.1/file/CHANGELOG.md
65
64
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/logger
66
65
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
67
- documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-logger/0.3.0
66
+ documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-logger/0.3.1
68
67
  post_install_message: ''
69
68
  rdoc_options: []
70
69
  require_paths:
@@ -80,8 +79,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
79
  - !ruby/object:Gem::Version
81
80
  version: '0'
82
81
  requirements: []
83
- rubygems_version: 3.4.19
84
- signing_key:
82
+ rubygems_version: 4.0.3
85
83
  specification_version: 4
86
84
  summary: Logger instrumentation for the OpenTelemetry framework
87
85
  test_files: []