Exports OpenTelemetry log records to syslog.
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)
Option Name | Description | Default Value |
---|---|---|
WITH_TESTING |
Whether to enable tests | ON |
INSTALL_SYSLOG_EXPORTER |
Whether to install the syslog exporter | ON |
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.