Interface Logger


@ThreadSafe public interface Logger
A Logger is the entry point into a log pipeline.

Obtain a EventBuilder or logRecordBuilder(), add properties using the setters, and emit it via LogRecordBuilder.emit().

Example usage emitting events:


 class MyClass {
   private final Logger eventLogger = openTelemetryLoggerProvider.loggerBuilder("instrumentation-library-name")
     .setInstrumentationVersion("1.0.0")
     .setEventDomain("acme.observability")
     .build();

   void doWork() {
     eventLogger.eventBuilder("my-event")
       .setAllAttributes(Attributes.builder()
         .put("key1", "value1")
         .put("key2", "value2")
         .build())
       .emit();
     // do work
   }
 }
 
  • Method Details

    • eventBuilder

      EventBuilder eventBuilder(String eventName)
      Return a EventBuilder to emit an event.

      NOTE: this API MUST only be called on Loggers which have been assigned an event domain.

      Build the event using the EventBuilder setters, and emit via LogRecordBuilder.emit().

      Parameters:
      eventName - the event name, which acts as a classifier for events. Within a particular event domain, event name defines a particular class or type of event.
    • logRecordBuilder

      LogRecordBuilder logRecordBuilder()
      Return a LogRecordBuilder to emit a log record.

      IMPORTANT: this should be used to write appenders to bridge logs from logging frameworks (e.g. SLF4J, Log4j, JUL, Logback, etc). It is NOT a replacement for an application logging framework, and should not be used by application developers.

      Build the log record using the LogRecordBuilder setters, and emit via LogRecordBuilder.emit().