Class MultiLogRecordProcessor

Inheritance Relationships

Base Type

Class Documentation

class MultiLogRecordProcessor : public opentelemetry::sdk::logs::LogRecordProcessor

Log processor allow hooks for receive method invocations.

Built-in log processors are responsible for batching and conversion of logs to exportable representation and passing batches to exporters.

Public Functions

MultiLogRecordProcessor(std::vector<std::unique_ptr<LogRecordProcessor>> &&processors)
~MultiLogRecordProcessor() override
void AddProcessor(std::unique_ptr<LogRecordProcessor> &&processor)
virtual std::unique_ptr<Recordable> MakeRecordable() noexcept override

Create a log recordable. This requests a new log recordable from the associated exporter.

Note: This method must be callable from multiple threads.

Returns:

a newly initialized recordable

virtual void OnEmit(std::unique_ptr<Recordable> &&record) noexcept override

OnEmit is called by the SDK once a log record has been successfully created.

Parameters:

record – the log record

virtual bool ForceFlush(std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override

Exports all log records that have not yet been exported to the configured Exporter.

Parameters:

timeout – that the forceflush is required to finish within.

Returns:

a result code indicating whether it succeeded, failed or timed out

virtual bool Shutdown(std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override

Shuts down the processor and does any cleanup required. ShutDown should only be called once for each processor.

Parameters:

timeout – minimum amount of microseconds to wait for shutdown before giving up and returning failure.

Returns:

true if the shutdown succeeded, false otherwise