45 bool bProtectLog =
true;
48 verbosity eMinFlushVerbosity = verbosity::error;
82 std::optional<string_view>
get_pattern() const noexcept;
99 std::thread::
id threadId,
100 std::chrono::system_clock::time_point messageTime,
102 string_view svFunction,
104 string_view svMessage);
125 verbosity eVerbosity,
126 std::thread::
id threadId,
127 std::chrono::system_clock::time_point messageTime,
129 string_view svFunction,
130 int nLine) const noexcept;
146 verbosity eVerbosity,
147 std::thread::
id threadId,
148 std::chrono::system_clock::time_point messageTime,
150 string_view svFunction,
152 string_view svMessage) = 0;
157 virtual
void do_flush() = 0;
162 std::unique_ptr<std::recursive_mutex> m_pMutex;
163 verbosity m_eMinFlushVerbosity = verbosity::error;
164 bool m_bProtectLog = true;
169 #include <qx/logger/base_logger_stream.inl>
#define QX_DEFINE_CATEGORY(name,...)
Define a category.
Base class for logger streams.
virtual bool log_unconditionally_required(const category &category, verbosity eVerbosity, std::thread::id threadId, std::chrono::system_clock::time_point messageTime, string_view svFile, string_view svFunction, int nLine) const noexcept
Returns true if this message should be processed by this stream even if the logger filters did not pa...
std::optional< string_view > get_pattern() const noexcept
Get a message pattern if present.
compile_pattern_result set_pattern(pattern_string_t sPattern) noexcept
Set a message pattern that will be used for this stream.
void log(const category &category, verbosity eVerbosity, std::thread::id threadId, std::chrono::system_clock::time_point messageTime, string_view svFile, string_view svFunction, int nLine, string_view svMessage)
Output to stream.
void flush()
Flush the stream.
base_logger_stream(const config &streamConfig) noexcept
base_logger_stream object constructor
A category is a class that identifies a particular piece of code. This code can be located in differe...
Polymorphic base for qx class identity and inheritance queries.
Contains perf scope macros for profiler (for internal usage only, but user may override them)
RTTI system based on polymorphism.