Skip to content

sjinks/opentelemetry_exporter_syslog_logs

Repository files navigation

opentelemetry_exporter_syslog_logs

Build and Test CodeQL Quality Gate Status

Exports OpenTelemetry log records to syslog.

Installation

cmake -B build
cmake --build build
cmake --install build

Dependencies: opentelemetry-cpp >= 1.11.0

Development Dependencies: Google Test with GMock (will be downloaded if not present)

CMake Options

Option Name Description Default Value
WITH_TESTING Whether to enable tests ON
INSTALL_SYSLOG_EXPORTER Whether to install the syslog exporter ON

Usage

find_package(wwa_opentelemetry_exporter_syslog_logs CONFIG REQUIRED)
target_link_libraries(
    my_target
    PRIVATE
        wwa::opentelemetry::syslog_log_record_exporter
)
#include <opentelemetry/logs/provider.h>
#include <opentelemetry/sdk/logs/logger_provider.h>
#include <opentelemetry/sdk/logs/simple_log_record_processor.h>
#include <opentelemetry/exporters/wwa/syslog/log_record_exporter_factory.h>

void init_logging()
{
    auto exporter = wwa::opentelemetry::exporter::logs::SyslogLogRecordExporterFactory::Create(
        "syslog-identifier"
    );

    auto processor = std::make_unique<opentelemetry::sdk::logs::SimpleLogRecordProcessor>(
        std::move(exporter)
    );

    auto provider = std::make_shared<opentelemetry::sdk::logs::LoggerProvider>(
        std::move(processor)
    );

    opentelemetry::logs::Provider::SetLoggerProvider(
        std::static_pointer_cast<opentelemetry::logs::LoggerProvider>(provider)
    );
}

See ci/CMakeLists.txt and ci/main.cpp for an example.