Coverage Report

Created: 2023-11-12 09:30

/proc/self/cwd/source/common/common/logger_delegates.cc
Line
Count
Source (jump to first uncovered line)
1
#include "source/common/common/logger_delegates.h"
2
3
#include <cassert> // use direct system-assert to avoid cyclic dependency.
4
#include <cstdint>
5
#include <iostream>
6
#include <string>
7
8
#include "spdlog/spdlog.h"
9
10
namespace Envoy {
11
namespace Logger {
12
FileSinkDelegate::FileSinkDelegate(const std::string& log_path,
13
                                   AccessLog::AccessLogManager& log_manager,
14
                                   DelegatingLogSinkSharedPtr log_sink)
15
    : SinkDelegate(log_sink), log_file_(log_manager.createAccessLog(Filesystem::FilePathAndType{
16
0
                                  Filesystem::DestinationType::File, log_path})) {
17
0
  setDelegate();
18
0
}
19
20
0
FileSinkDelegate::~FileSinkDelegate() { restoreDelegate(); }
21
22
0
void FileSinkDelegate::log(absl::string_view msg, const spdlog::details::log_msg&) {
23
  // Log files have internal locking to ensure serial, non-interleaved
24
  // writes, so no additional locking needed here.
25
0
  log_file_->write(msg);
26
0
}
27
28
0
void FileSinkDelegate::flush() {
29
  // Log files have internal locking to ensure serial, non-interleaved
30
  // writes, so no additional locking needed here.
31
0
  log_file_->flush();
32
0
}
33
34
} // namespace Logger
35
} // namespace Envoy