1 // Copyright The OpenTelemetry Authors
2 // SPDX-License-Identifier: Apache-2.0
4 #ifdef ENABLE_LOGS_PREVIEW
6 # include "opentelemetry/sdk/logs/logger_context.h"
7 # include "opentelemetry/sdk/logs/multi_log_processor.h"
12 OPENTELEMETRY_BEGIN_NAMESPACE
18 LoggerContext::LoggerContext(std::vector
<std::unique_ptr
<LogProcessor
>> &&processors
,
19 opentelemetry::sdk::resource::Resource resource
) noexcept
20 : resource_(resource
),
21 processor_(std::unique_ptr
<LogProcessor
>(new MultiLogProcessor(std::move(processors
))))
24 void LoggerContext::AddProcessor(std::unique_ptr
<LogProcessor
> processor
) noexcept
26 auto multi_processor
= static_cast<MultiLogProcessor
*>(processor_
.get());
27 multi_processor
->AddProcessor(std::move(processor
));
30 LogProcessor
&LoggerContext::GetProcessor() const noexcept
35 const opentelemetry::sdk::resource::Resource
&LoggerContext::GetResource() const noexcept
40 bool LoggerContext::ForceFlush(std::chrono::microseconds timeout
) noexcept
42 return processor_
->ForceFlush(timeout
);
45 bool LoggerContext::Shutdown(std::chrono::microseconds timeout
) noexcept
47 return processor_
->ForceFlush(timeout
);
53 OPENTELEMETRY_END_NAMESPACE