instrument_log_exporter behaviour (instrument v1.0.0)
View SourceLog exporter manager for OpenTelemetry-compatible log export.
This module manages log exporters and handles batch processing of log records for efficient export.
Example Usage
%% Register console exporter for logs
instrument_log_exporter:register(instrument_log_exporter_console:new()),
%% Register OTLP exporter
instrument_log_exporter:register(instrument_log_exporter_otlp:new(#{
endpoint => "http://localhost:4318"
})),
%% Logs are exported when using instrument_logger with exporter mode
Summary
Functions
Behaviour callbacks for log exporters
Exports a single log record (adds to batch).
Exports multiple log records immediately.
Forces a flush of all pending log records.
Lists all registered exporters.
Registers a log exporter.
Shuts down all exporters.
Starts the log exporter manager.
Unregisters a log exporter.
Types
Functions
Behaviour callbacks for log exporters
-spec export(#log_record{timestamp :: integer() | undefined, observed_timestamp :: integer() | undefined, severity_number :: integer() | undefined, severity_text :: binary() | undefined, body :: term(), attributes :: map(), trace_id :: <<_:128>> | undefined, span_id :: <<_:64>> | undefined, trace_flags :: 0 | 1 | undefined, resource :: #resource{attributes :: map(), schema_url :: binary() | undefined} | undefined, scope :: #scope{name :: binary(), version :: binary() | undefined, attributes :: map(), schema_url :: binary() | undefined} | undefined}) -> ok.
Exports a single log record (adds to batch).
-spec export_batch([#log_record{timestamp :: integer() | undefined, observed_timestamp :: integer() | undefined, severity_number :: integer() | undefined, severity_text :: binary() | undefined, body :: term(), attributes :: map(), trace_id :: <<_:128>> | undefined, span_id :: <<_:64>> | undefined, trace_flags :: 0 | 1 | undefined, resource :: #resource{attributes :: map(), schema_url :: binary() | undefined} | undefined, scope :: #scope{name :: binary(), version :: binary() | undefined, attributes :: map(), schema_url :: binary() | undefined} | undefined}]) -> ok.
Exports multiple log records immediately.
-spec flush() -> ok.
Forces a flush of all pending log records.
-spec list() -> [module()].
Lists all registered exporters.
Registers a log exporter.
-spec shutdown() -> ok.
Shuts down all exporters.
Starts the log exporter manager.
-spec unregister(module()) -> ok.
Unregisters a log exporter.