49 bool open(
const char* filePath)
52 if (filePath && filePath[0] !=
'\0') {
54 ::fopen_s(&_file, filePath,
"a");
56 _file = std::fopen(filePath,
"a");
59 return _file !=
nullptr;
66 (void)std::fclose(_file);
72 template <std::
size_t N>
76 (void)std::fprintf(_file,
"[%s] [%s] %.*s\n",
79 static_cast<int>(
event.length),
81 (void)std::fflush(_file);
85 [[nodiscard]]
bool isOpen() const noexcept
87 return _file !=
nullptr;
91 std::FILE* _file =
nullptr;
Zero-heap fixed-capacity inline buffer log event record.
File log sink appending formatted log entries to a designated file.
Definition FileLogSink.hpp:15
FileLogSink & operator=(const FileLogSink &)=delete
FileLogSink(FileLogSink &&rhs) noexcept
Definition FileLogSink.hpp:32
FileLogSink(const char *filePath)
Definition FileLogSink.hpp:19
void close() noexcept
Close target log file.
Definition FileLogSink.hpp:63
FileLogSink(const FileLogSink &)=delete
bool open(const char *filePath)
Open target log file in append mode.
Definition FileLogSink.hpp:49
bool isOpen() const noexcept
Definition FileLogSink.hpp:85
void write(const LogEventT< N > &event) const
Write log event entry to file.
Definition FileLogSink.hpp:73
~FileLogSink()
Definition FileLogSink.hpp:24
FileLogSink & operator=(FileLogSink &&rhs) noexcept
Definition FileLogSink.hpp:38
Definition ConsoleLogSink.hpp:12
constexpr const char * logLevelToString(LogLevel level) noexcept
Convert LogLevel enum to string representation.
Definition LogLevel.hpp:25
Zero-heap log event carrying fixed-size inline message buffer across MPSC event bus.
Definition LogEvent.hpp:21
std::array< char, MaxMessageLength > message
Definition LogEvent.hpp:23
LogLevel level
Definition LogEvent.hpp:22