1
#include "source/extensions/tracers/datadog/logger.h"
2

            
3
#include <sstream>
4

            
5
#include "datadog/error.h"
6

            
7
namespace Envoy {
8
namespace Extensions {
9
namespace Tracers {
10
namespace Datadog {
11

            
12
35
Logger::Logger(spdlog::logger& logger) : logger_(logger) {}
13

            
14
// datadog::tracing::Logger
15

            
16
2
void Logger::log_error(const LogFunc& write) {
17
2
  if (!ENVOY_LOG_COMP_LEVEL(logger_, error)) {
18
1
    return;
19
1
  }
20

            
21
1
  std::ostringstream stream;
22
1
  write(stream);
23
1
  ENVOY_LOG_TO_LOGGER(logger_, error, "{}", stream.str());
24
1
}
25

            
26
36
void Logger::log_startup(const LogFunc& write) {
27
36
  if (!ENVOY_LOG_COMP_LEVEL(logger_, info)) {
28
34
    return;
29
34
  }
30

            
31
2
  std::ostringstream stream;
32
2
  write(stream);
33
2
  ENVOY_LOG_TO_LOGGER(logger_, info, "{}", stream.str());
34
2
}
35

            
36
8
void Logger::log_error(const datadog::tracing::Error& error) {
37
8
  ENVOY_LOG_TO_LOGGER(logger_, error, "Datadog [error {}]: {}", int(error.code), error.message);
38
8
}
39

            
40
2
void Logger::log_error(datadog::tracing::StringView message) {
41
2
  ENVOY_LOG_TO_LOGGER(logger_, error, "{}", message);
42
2
}
43

            
44
} // namespace Datadog
45
} // namespace Tracers
46
} // namespace Extensions
47
} // namespace Envoy