summaryrefslogtreecommitdiffstats
path: root/contrib/libs/opentelemetry-cpp/sdk/src/logs/event_logger.cc
blob: a95624f2cfb05e2e11f76d5c41ceba6549634f61 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#if OPENTELEMETRY_ABI_VERSION_NO < 2
#  include <string>
#  include <utility>

#  include "opentelemetry/logs/log_record.h"
#  include "opentelemetry/logs/logger.h"
#  include "opentelemetry/nostd/shared_ptr.h"
#  include "opentelemetry/nostd/string_view.h"
#  include "opentelemetry/nostd/unique_ptr.h"
#  include "opentelemetry/sdk/logs/event_logger.h"
#endif

#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace logs
{
#if OPENTELEMETRY_ABI_VERSION_NO < 2
EventLogger::EventLogger(
    opentelemetry::nostd::shared_ptr<opentelemetry::logs::Logger> delegate_logger,
    opentelemetry::nostd::string_view event_domain) noexcept
    : delegate_logger_(std::move(delegate_logger)), event_domain_(event_domain)
{}

const opentelemetry::nostd::string_view EventLogger::GetName() noexcept
{
  if (delegate_logger_)
  {
    return delegate_logger_->GetName();
  }

  return {};
}

opentelemetry::nostd::shared_ptr<opentelemetry::logs::Logger>
EventLogger::GetDelegateLogger() noexcept
{
  return delegate_logger_;
}

void EventLogger::EmitEvent(
    opentelemetry::nostd::string_view event_name,
    opentelemetry::nostd::unique_ptr<opentelemetry::logs::LogRecord> &&log_record) noexcept
{
  if (!delegate_logger_ || !log_record)
  {
    return;
  }

  if (!event_domain_.empty() && !event_name.empty())
  {
    log_record->SetAttribute("event.domain", event_domain_);
    log_record->SetAttribute("event.name", event_name);
  }

  delegate_logger_->EmitLogRecord(std::move(log_record));
}
#endif
}  // namespace logs
}  // namespace sdk
OPENTELEMETRY_END_NAMESPACE