Corium 1.1.0
High-Performance Zero-Heap C++20 MPSC Application Runtime
Loading...
Searching...
No Matches
ConsoleLogSink.hpp
Go to the documentation of this file.
1
7#pragma once
8
9#include <iostream>
11
13
16public:
17 explicit ConsoleLogSink(bool useColors = true) noexcept
18 : _useColors(useColors)
19 {}
20
22 template <std::size_t N>
23 void write(const LogEventT<N>& event) const
24 {
25 std::ostream& os = (event.level >= LogLevel::Error) ? std::cerr : std::cout;
26
27 if (_useColors) {
28 os << logLevelToColor(event.level)
29 << "[" << logLevelToString(event.level) << "]"
31 << " [" << event.category << "] "
32 << event.view() << "\n";
33 } else {
34 os << "[" << logLevelToString(event.level) << "]"
35 << " [" << event.category << "] "
36 << event.view() << "\n";
37 }
38 os << std::flush;
39 }
40
42 void setColorsEnabled(bool enable) noexcept
43 {
44 _useColors = enable;
45 }
46
47 [[nodiscard]] bool colorsEnabled() const noexcept
48 {
49 return _useColors;
50 }
51
52private:
53 bool _useColors = true;
54};
55
56} // namespace corium::logging::sinks
Zero-heap fixed-capacity inline buffer log event record.
Standard console output log sink with optional ANSI color codes.
Definition ConsoleLogSink.hpp:15
void write(const LogEventT< N > &event) const
Write log event to std::cout or std::cerr.
Definition ConsoleLogSink.hpp:23
void setColorsEnabled(bool enable) noexcept
Enable or disable ANSI color formatting.
Definition ConsoleLogSink.hpp:42
ConsoleLogSink(bool useColors=true) noexcept
Definition ConsoleLogSink.hpp:17
bool colorsEnabled() const noexcept
Definition ConsoleLogSink.hpp:47
Definition ConsoleLogSink.hpp:12
constexpr const char * logLevelToColor(LogLevel level) noexcept
Get ANSI color escape code for LogLevel.
Definition LogLevel.hpp:40
constexpr const char * LOG_COLOR_RESET
ANSI reset color escape code.
Definition LogLevel.hpp:55
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
LogLevel level
Definition LogEvent.hpp:22