PackageTrack
Sign in Get early access

opentelemetry-appender-tracing

An OpenTelemetry log appender for the tracing crate

0.32.0 16M downloads/mo #2430 most downloaded on crates.io open-telemetry/opentelemetry-rust

What this package is like to depend on

Last release 3 months ago

09 May 2026

Release timing varies

gaps range from 2 weeks to 8 months

Nearly every release is documented

notes for 17 of 17 stable releases

Nothing withdrawn

no release was ever pulled

3 years old

17 releases · first in 2023

3 releases in the last 12 months

see the full history below

Release timeline

17 releases · Jul 2023 to May 2026
2024 2025 2026
Release Pre-release

Releases

latest 17
  1. 0.32.0 09 May 2026
    Release notes

    "opentelemetry-appender-tracing 0.32.0 release."

    Open source →
    Release notes

    Released 2026-May-08

    • Add tracing span attribute enrichment (experimental). When enabled, attributes attached to active tracing spans are copied onto each emitted log record. "Span" here refers to a tracing::span! from the tracing crate (the appender's source), not an OpenTelemetry span. #3482, #3505

      Gated behind the new experimental_span_attributes cargo feature. As with all experimental_* features in this repo, the API may change without a major version bump until it is stabilized; once stable, the feature flag will be removed.

      Enrichment is disabled by default (no per-span overhead) and must be opted into at runtime via a single builder method that accepts a [TracingSpanAttributes] value:

      use opentelemetry_appender_tracing::layer::TracingSpanAttributes;
      
      // Copy all tracing-span attributes onto log records:
      let layer = OpenTelemetryTracingBridge::builder(&provider)
          .with_tracing_span_attributes(TracingSpanAttributes::all())
          .build();
      
      // Or copy only an allowlist of attributes:
      let layer = OpenTelemetryTracingBridge::builder(&provider)
          .with_tracing_span_attributes(TracingSpanAttributes::allowlist(["session.id"]))
          .build();
      
    • Remove the experimental_use_tracing_span_context since tracing-opentelemetry now supports activating the OpenTelemetry context for the current tracing span. This fixes #3190 — the circular dependency introduced by depending on tracing-opentelemetry that depends on opentelemetry.

    • "spec_unstable_logs_enabled" feature flag is removed. The capability (and the backing specification) is now stable and is enabled by default. #3278

    Open source →
    Release notes

    Released 2026-May-08

    Open source →
  2. 0.31.1 02 Oct 2025
    Release notes

    Released 2025-Oct-1

    • Bump tracing-opentelemetry to 0.32
    Open source →
  3. 0.31.0 25 Sep 2025
    Release notes

    Released 2025-Sep-25

    • Updated opentelemetry dependency to version 0.31.0.
    Open source →
    Release notes

    Released 2025-Sep-25

    • Update to v1.34.0 of the semantic conventions.
    Open source →
  4. 0.30.1 05 Jun 2025
    Release notes

    Released 2025-June-05

    • Bump tracing-opentelemetry to 0.31
    Open source →
  5. 0.30.0 23 May 2025
    Release notes

    Released 2025-May-23

    • Updated opentelemetry dependency to version 0.30.0.
    Open source →
    Release notes

    Released 2025-May-23

    • Update to v1.32.0 of the semantic conventions.
    Open source →
  6. 0.29.1 24 Mar 2025
    Release notes

    Released 2025-Mar-24

    • Bump tracing-opentelemetry to 0.30
    Open source →
  7. 0.29.0 22 Mar 2025
    Release notes

    Released 2025-Mar-21

    Fixes 1682. "spec_unstable_logs_enabled" feature now do not suppress logs for other layers.

    The special treatment of the "message" field has been extended when recording string values. With this change, when a log is emitted with a field named "message" (and string value), its value is directly assigned to the LogRecord’s body rather than being stored as an attribute named "message". This offers a slight performance improvement over previous.

    For example, the below will now produce LogRecord with the message value populated as LogRecord's body:

    error!(name: "my-event-name", target: "my-system", event_id = 20, user_name = "otel", user_email = "[email protected]", message = "This is an example message");
    

    Previously, Body was only populated when the below style was used.

    error!(name: "my-event-name", target: "my-system", event_id = 20, user_name = "otel", user_email = "[email protected]", "This is an example message");
    

    This style, while slightly slower, should still be used when the value is not a simple string, but require format arguments as in the below example.

    error!(name: "my-event-name", target: "my-system", event_id = 20, user_name = "otel", user_email = "[email protected]", "This is an example message with format arguments {} and {}", "foo", "bar");
    

    Fixes 2658 InstrumentationScope(Logger) used by the appender now uses an empty ("") named Logger. Previously, a Logger with name and version of the crate was used. Receivers (processors, exporters) are expected to use LogRecord.target() as scope name. This is already done in OTLP Exporters, so this change should be transparent to most users.

    • Passes event name to the event_enabled method on the Logger. This allows implementations (SDK, processor, exporters) to leverage this additional information to determine if an event is enabled.

    • u64, i128, u128 and usize values are stored as opentelemetry::logs::AnyValue::Int when conversion is feasible. Otherwise stored as opentelemetry::logs::AnyValue::String. This avoids unnecessary string allocation when values can be represented in their original types.

    • Byte arrays are stored as opentelemetry::logs::AnyValue::Bytes instead of string.

    • Error fields are reported using attribute named "exception.message". For example, the below will now report an attribute named "exception.message", instead of previously reporting the user provided attribute "error". error!(....error = &OTelSdkError::AlreadyShutdown as &dyn std::error::Error...)

    • perf - small perf improvement by avoiding string allocation of target

    • Update opentelemetry dependency version to 0.29.

    Open source →
    Release notes

    Released 2025-Mar-21

    • Update to v1.31.0 of the semantic conventions.
    Open source →
  8. 0.28.1 12 Feb 2025
    Release notes

    Released 2025-Feb-12

    • New experimental feature to use trace_id & span_id from spans created through the tracing crate (experimental_use_tracing_span_context) #2438
    Open source →
  9. 0.28.0 10 Feb 2025
    Release notes

    Released 2025-Feb-10

    • Update opentelemetry dependency version to 0.28.
    • Bump msrv to 1.75.0.
    Open source →
    Release notes

    Released 2025-Feb-10

    • Update to v1.29.0 of the semantic conventions.
    • Bump msrv to 1.75.0.
    Open source →
  10. 0.27.0 12 Nov 2024
    Release notes

    Released 2024-Nov-11

    • Update opentelemetry dependency version to 0.27

    • Bump MSRV to 1.70 #2179

    • Breaking 2291 Rename logs_level_enabled flag to spec_unstable_logs_enabled. Please enable this updated flag if the feature is needed. This flag will be removed once the feature is stabilized in the specifications.

    Open source →
    Release notes

    Released 2024-Nov-11

    • Bump MSRV to 1.70 #2179
    • Update to v1.28.0 of the semantic conventions.
    Open source →
  11. 0.26.0 01 Oct 2024
    Release notes

    Released 2024-Sep-30

    • Update opentelemetry dependency version to 0.26
    • 2101 The log events emitted via the tracing pipeline using the log-tracing crate no longer include the target metadata as attributes. Exporters or backends that rely on this attribute should now access the target directly from the LogRecord::target field.
    Open source →
    Release notes

    Released 2024-Sep-30

    Changed

    • Starting with this version, this crate will use Weaver for the generation of the semantic conventions.
    • Breaking Introduced a new feature semconv_experimental to enable experimental semantic conventions. This feature is disabled by default.
    Open source →
  12. 0.25.0 09 Sep 2024
    Release notes
    • Update opentelemetry dependency version to 0.25
    • Starting with this version, this crate will align with opentelemetry crate on major,minor versions.
    • Reduce heap allocation by using &'static str for SeverityText.
    Open source →
    Release notes

    Changed

    • Starting with this version, this crate will align with opentelemetry crate on major,minor versions.
    • Update to v1.27.0 of the semantic conventions. #2000
    Open source →
  13. 0.5.0 15 Jul 2024
    Release notes
    • 1869 Utilize the LogRecord::set_target() method to pass the tracing target to the SDK. Exporters might use the target to override the instrumentation scope, which previously contained "opentelemetry-appender-tracing".

    • Breaking 1928 Insert tracing event name into LogRecord::event_name instead of attributes.

      • If using a custom exporter, then they must serialize this field directly from LogRecord::event_name instead of iterating over the attributes. OTLP Exporter is modified to handle this.
    • Update opentelemetry dependency version to 0.24

    Open source →
    Release notes

    Changed

    • Update to opentelemetry v0.13.0

    Removed

    • Removed from_env and use environment variables to initialize the configurations by default #459
    Open source →
  14. 0.4.0 15 May 2024
    Release notes
    • Removed unwanted dependency on opentelemetry-sdk.
    • Update opentelemetry dependency version to 0.23
    Open source →
    Release notes

    Changed

    • Update to opentelemetry v0.12.0
    Open source →
  15. 0.3.0 25 Feb 2024
    Release notes

    Added

    • New experimental metadata attributes feature (experimental_metadata_attributes) #1380
      • Experimental new attributes for tracing metadata
      • Fixes the following for events emitted using log crate
        • Normalized metadata fields
        • Remove redundant metadata
    Open source →
    Release notes

    Changed

    • Update to opentelemetry v0.11.0
    Open source →
  16. 0.2.0 06 Nov 2023
    Release notes

    Changed

    • Bump MSRV to 1.65 #1318

    Added

    • Add log appender versions to loggers (#1182)
    Open source →
    Release notes

    Changed

    • Update to opentelemetry v0.10.0
    Open source →
  17. 0.1.0 29 Jul 2023
    Release notes

    Initial crate release

    Open source →
    Release notes

    Added

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive