Class OpenTelemetryAppender

java.lang.Object
ch.qos.logback.core.spi.ContextAwareBase
ch.qos.logback.core.UnsynchronizedAppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender
All Implemented Interfaces:
ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent>, ch.qos.logback.core.spi.ContextAware, ch.qos.logback.core.spi.FilterAttachable<ch.qos.logback.classic.spi.ILoggingEvent>, ch.qos.logback.core.spi.LifeCycle

public class OpenTelemetryAppender extends ch.qos.logback.core.UnsynchronizedAppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
  • Field Summary

    Fields inherited from class ch.qos.logback.core.UnsynchronizedAppenderBase

    name, started

    Fields inherited from class ch.qos.logback.core.spi.ContextAwareBase

    context
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    append(ch.qos.logback.classic.spi.ILoggingEvent event)
     
    static void
    install(io.opentelemetry.api.OpenTelemetry openTelemetry)
    Installs the openTelemetry instance on any OpenTelemetryAppenders identified in the LoggerContext.
    void
    setCaptureArguments(boolean captureArguments)
    Sets whether the arguments should be set to logs.
    void
    setCaptureCodeAttributes(boolean captureCodeAttributes)
    Sets whether the code attributes (file name, class name, method name and line number) should be set to logs.
    void
    setCaptureEventName(boolean captureEventName)
    Sets whether the value of the event.name attribute is used as the log event name.
    void
    setCaptureExperimentalAttributes(boolean captureExperimentalAttributes)
    Sets whether experimental attributes should be set to logs.
    void
    setCaptureKeyValuePairAttributes(boolean captureKeyValuePairAttributes)
    Sets whether the key value pair attributes should be set to logs.
    void
    setCaptureLoggerContext(boolean captureLoggerContext)
    Sets whether the logger context properties should be set to logs.
    void
    setCaptureLogstashAttributes(boolean captureLogstashAttributes)
    void
    setCaptureLogstashMarkerAttributes(boolean captureLogstashMarkerAttributes)
    Sets whether the Logstash marker attributes should be captured.
    void
    setCaptureLogstashStructuredArguments(boolean captureLogstashStructuredArguments)
    Sets whether the Logstash StructuredArguments should be captured.
    void
    setCaptureMarkerAttribute(boolean captureMarkerAttribute)
    Sets whether the marker attribute should be set to logs.
    void
    Configures the MDC attributes that will be copied to logs.
    void
    Log telemetry is emitted after the initialization of the OpenTelemetry Logback appender with an OpenTelemetry object.
    void
    setOpenTelemetry(io.opentelemetry.api.OpenTelemetry openTelemetry)
    Configures the OpenTelemetry used to append logs.
    void
     

    Methods inherited from class ch.qos.logback.core.UnsynchronizedAppenderBase

    addFilter, clearAllFilters, doAppend, getCopyOfAttachedFiltersList, getFilterChainDecision, getName, isStarted, setName, stop, toString

    Methods inherited from class ch.qos.logback.core.spi.ContextAwareBase

    addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, getDeclaredOrigin, getStatusManager, setContext

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface ch.qos.logback.core.spi.ContextAware

    addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, setContext
  • Constructor Details

    • OpenTelemetryAppender

      public OpenTelemetryAppender()
  • Method Details

    • install

      public static void install(io.opentelemetry.api.OpenTelemetry openTelemetry)
      Installs the openTelemetry instance on any OpenTelemetryAppenders identified in the LoggerContext.
    • start

      public void start()
      Specified by:
      start in interface ch.qos.logback.core.spi.LifeCycle
      Overrides:
      start in class ch.qos.logback.core.UnsynchronizedAppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
    • append

      protected void append(ch.qos.logback.classic.spi.ILoggingEvent event)
      Specified by:
      append in class ch.qos.logback.core.UnsynchronizedAppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
    • setCaptureExperimentalAttributes

      public void setCaptureExperimentalAttributes(boolean captureExperimentalAttributes)
      Sets whether experimental attributes should be set to logs. These attributes may be changed or removed in the future, so only enable this if you know you do not require attributes filled by this instrumentation to be stable across versions.
    • setCaptureCodeAttributes

      public void setCaptureCodeAttributes(boolean captureCodeAttributes)
      Sets whether the code attributes (file name, class name, method name and line number) should be set to logs. Enabling these attributes can potentially impact performance (see https://logback.qos.ch/manual/layouts.html).
      Parameters:
      captureCodeAttributes - To enable or disable the code attributes (file name, class name, method name and line number)
    • setCaptureMarkerAttribute

      public void setCaptureMarkerAttribute(boolean captureMarkerAttribute)
      Sets whether the marker attribute should be set to logs.
      Parameters:
      captureMarkerAttribute - To enable or disable capturing the marker attribute
    • setCaptureKeyValuePairAttributes

      public void setCaptureKeyValuePairAttributes(boolean captureKeyValuePairAttributes)
      Sets whether the key value pair attributes should be set to logs.
      Parameters:
      captureKeyValuePairAttributes - To enable or disable capturing key value pairs
    • setCaptureLoggerContext

      public void setCaptureLoggerContext(boolean captureLoggerContext)
      Sets whether the logger context properties should be set to logs.
      Parameters:
      captureLoggerContext - To enable or disable capturing logger context properties
    • setCaptureArguments

      public void setCaptureArguments(boolean captureArguments)
      Sets whether the arguments should be set to logs.
      Parameters:
      captureArguments - To enable or disable capturing logger arguments
    • setCaptureLogstashAttributes

      @Deprecated public void setCaptureLogstashAttributes(boolean captureLogstashAttributes)
      Deprecated.
      Use setCaptureLogstashMarkerAttributes(boolean) instead. This method is deprecated and will be removed in a future release.
      Sets whether the Logstash attributes should be set to logs.
      Parameters:
      captureLogstashAttributes - To enable or disable capturing Logstash attributes
    • setCaptureLogstashMarkerAttributes

      public void setCaptureLogstashMarkerAttributes(boolean captureLogstashMarkerAttributes)
      Sets whether the Logstash marker attributes should be captured.
    • setCaptureLogstashStructuredArguments

      public void setCaptureLogstashStructuredArguments(boolean captureLogstashStructuredArguments)
      Sets whether the Logstash StructuredArguments should be captured.
    • setCaptureMdcAttributes

      public void setCaptureMdcAttributes(String attributes)
      Configures the MDC attributes that will be copied to logs.
    • setCaptureEventName

      public void setCaptureEventName(boolean captureEventName)
      Sets whether the value of the event.name attribute is used as the log event name.

      The event.name attribute is captured via any other mechanism supported by this appender, such as when captureKeyValuePairAttributes is true.

      When captureEventName is true, then the value of the event.name attribute will be used as the log event name, and event.name attribute will be removed.

      Parameters:
      captureEventName - to enable or disable capturing the event.name attribute as the log event name
    • setNumLogsCapturedBeforeOtelInstall

      public void setNumLogsCapturedBeforeOtelInstall(int size)
      Log telemetry is emitted after the initialization of the OpenTelemetry Logback appender with an OpenTelemetry object. This setting allows you to modify the size of the cache used to replay the first logs.
    • setOpenTelemetry

      public void setOpenTelemetry(io.opentelemetry.api.OpenTelemetry openTelemetry)
      Configures the OpenTelemetry used to append logs. This MUST be called for the appender to function. See install(OpenTelemetry) for simple installation option.