qxLib
Classes | Public Member Functions | Static Protected Member Functions | List of all members
qx::logger Class Reference

Logger class. More...

#include <logger.h>

Classes

struct  category_data
 

Public Member Functions

template<sbo_poly_assignable_c< base_logger_stream > stream_t>
void add_stream (stream_t stream) noexcept
 Add an output stream to the logger. More...
 
void register_category (const category &category, category_data data) noexcept
 Add custom rules for category. More...
 
void register_category (string_view svCategoryName, category_data data) noexcept
 Add custom rules for category. More...
 
virtual void log (const category &category, verbosity eVerbosity, string_view svFile, string_view svFunction, int nLine, logger_string_pool::item message)
 Log to all streams. More...
 
virtual void flush ()
 Flush all streams.
 
virtual void reset () noexcept
 Reset logger and clear all streams.
 
bool log_required (const category &category, verbosity eVerbosity) const noexcept
 Returns true if a log with given category and verbosity will be logged. More...
 

Static Protected Member Functions

static string default_formatter (const category &category, verbosity eVerbosity, string_view svFile, string_view svFunction, int nLine, string sMessage) noexcept
 The default log line formatter. More...
 
static constexpr string_view get_verbosity_prefix (verbosity eVerbosity) noexcept
 Get verbosity prefix. More...
 

Detailed Description

Logger class.

Author
Khrapov
Date
10.01.2020

Definition at line 59 of file logger.h.

Member Function Documentation

◆ add_stream()

template<sbo_poly_assignable_c< base_logger_stream > stream_t>
void qx::logger::add_stream ( stream_t  stream)
inlinenoexcept

Add an output stream to the logger.

Template Parameters
stream_t- stream type, derived from base_logger_stream
Parameters
stream- stream object

Definition at line 24 of file logger.inl.

◆ default_formatter()

string qx::logger::default_formatter ( const category category,
verbosity  eVerbosity,
string_view  svFile,
string_view  svFunction,
int  nLine,
string  sMessage 
)
inlinestaticprotectednoexcept

The default log line formatter.

Parameters
category- code category
eVerbosity- message verbosity
svFile- file name string
svFunction- function name string
nLine- code line number
sMessage- user message string
Return values
-the formatted log line (the same object as sMessage)

Definition at line 116 of file logger.inl.

◆ get_verbosity_prefix()

constexpr string_view qx::logger::get_verbosity_prefix ( verbosity  eVerbosity)
staticconstexprprotectednoexcept

Get verbosity prefix.

Parameters
eVerbosity- message verbosity
Return values
-verbosity prefix

Definition at line 169 of file logger.inl.

◆ log()

void qx::logger::log ( const category category,
verbosity  eVerbosity,
string_view  svFile,
string_view  svFunction,
int  nLine,
logger_string_pool::item  message 
)
inlinevirtual

Log to all streams.

Warning
All input args must be ready for async work (i.e. be stable)
Parameters
category- code category
eVerbosity- message verbosity
svFile- file name string
svFunction- function name string
nLine- code line number
message- user message string

Definition at line 41 of file logger.inl.

◆ log_required()

bool qx::logger::log_required ( const category category,
verbosity  eVerbosity 
) const
inlinenoexcept

Returns true if a log with given category and verbosity will be logged.

Typically you don't want to use it It may be useful with async logging to avoid unnecessary formatting and queueing

Parameters
category- code category
eVerbosity- message verbosity
Return values
-true if a log with given category and verbosity will be logged

Definition at line 97 of file logger.inl.

◆ register_category() [1/2]

void qx::logger::register_category ( const category category,
category_data  data 
)
inlinenoexcept

Add custom rules for category.

Parameters
category- category to register
data- category data

Definition at line 30 of file logger.inl.

◆ register_category() [2/2]

void qx::logger::register_category ( string_view  svCategoryName,
category_data  data 
)
inlinenoexcept

Add custom rules for category.

Parameters
svCategoryName- category name, must stay valid while the logger is alive (category existence is not checked)
data- category data

Definition at line 35 of file logger.inl.


The documentation for this class was generated from the following files: