/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 |