Github   Telegram
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
logging Namespace Reference

Logging macro and utilities. More...

Namespaces

namespace  stacktrace_cache
 Contains functions that cache stacktrace results.
 

Classes

class  DefaultLoggerGuard
 
struct  Hex
 Formats value in a hex mode with the fixed length representation. More...
 
struct  HexShort
 
class  LogExtra
 Extra tskv fields storage. More...
 
class  LogHelper
 
struct  Quoted
 Formats a string as quoted, escaping the '\' and '"' symbols. More...
 

Typedefs

using LoggerPtr = std::shared_ptr< impl::LoggerBase >
 
using LoggerRef = impl::LoggerBase &
 
using LoggerCRef = const impl::LoggerBase &
 

Enumerations

enum class  Format {
  kTskv ,
  kLtsv ,
  kRaw
}
 Log formats. More...
 
enum class  Level {
  kTrace = 0 ,
  kDebug = 1 ,
  kInfo = 2 ,
  kWarning = 3 ,
  kError = 4 ,
  kCritical = 5 ,
  kNone = 6
}
 Log levels. More...
 

Functions

Format FormatFromString (std::string_view format_str)
 Parse Format enum from string.
 
Level LevelFromString (std::string_view)
 Converts lowercase level name to a corresponding Level, throws std::runtime_error if no matching log level found.
 
std::string ToString (Level level)
 Returns a string representation of logging level.
 
std::optional< LevelOptionalLevelFromString (const std::optional< std::string > &level_name)
 Returns std::nullopt if level_name is std::nullopt, otherwise behaves exactly like logging::LevelFromString.
 
bool ShouldLogNospan (Level level) noexcept
 Returns true if the provided log level is greater or equal to the current log level. Note that this function does not deal with tracing::Span local log level, so the log may be actually disabled by the span.
 
bool ShouldLog (Level level) noexcept
 Returns true if the provided log level is greater or equal to the current log level and to the tracing::Span local log level. In other words, returns true if the log with level is logged.
 
Level Parse (const yaml_config::YamlConfig &value, formats::parse::To< Level >)
 
void SetDefaultLoggerLevel (Level)
 Sets new log level for default logger.
 
void SetLoggerLevel (LoggerRef, Level)
 
Level GetDefaultLoggerLevel () noexcept
 Returns log level for default logger.
 
bool LoggerShouldLog (LoggerCRef logger, Level level) noexcept
 
bool LoggerShouldLog (const LoggerPtr &logger, Level level) noexcept
 
Level GetLoggerLevel (LoggerCRef logger) noexcept
 
void LogFlush ()
 Forces flush of default logger message queue.
 
void LogFlush (LoggerCRef logger)
 Forces flush of logger message queue.
 
LogHelperoperator<< (LogHelper &lh, std::error_code ec)
 
template<typename T >
LogHelperoperator<< (LogHelper &lh, const std::atomic< T > &value)
 
template<typename T >
LogHelperoperator<< (LogHelper &lh, const T *value)
 
template<typename T >
LogHelperoperator<< (LogHelper &lh, T *value)
 
template<typename T >
LogHelperoperator<< (LogHelper &lh, const std::optional< T > &value)
 
template<class Result , class... Args>
LogHelperoperator<< (LogHelper &lh, Result(*)(Args...))
 
LogHelperoperator<< (LogHelper &lh, std::chrono::system_clock::time_point tp)
 
LogHelperoperator<< (LogHelper &lh, std::chrono::seconds value)
 
LogHelperoperator<< (LogHelper &lh, std::chrono::milliseconds value)
 
LogHelperoperator<< (LogHelper &lh, std::chrono::microseconds value)
 
LogHelperoperator<< (LogHelper &lh, std::chrono::nanoseconds value)
 
LogHelperoperator<< (LogHelper &lh, std::chrono::minutes value)
 
LogHelperoperator<< (LogHelper &lh, std::chrono::hours value)
 
LoggerPtr MakeStderrLogger (const std::string &name, Format format, Level level=Level::kInfo)
 Creates synchronous stderr logger with default tskv pattern. More...
 
LoggerPtr MakeStdoutLogger (const std::string &name, Format format, Level level=Level::kInfo)
 Creates synchronous stdout logger with default tskv pattern. More...
 
LoggerPtr MakeFileLogger (const std::string &name, const std::string &path, Format format, Level level=Level::kInfo)
 Creates synchronous file logger with default tskv pattern. More...
 
LoggerRef GetNullLogger () noexcept
 Returns a logger that drops all incoming messages. More...
 
LoggerPtr MakeNullLogger ()
 Creates a logger that drops all incoming messages. More...
 

Variables

constexpr auto kLevelMax = static_cast<int>(Level::kNone)
 

Detailed Description

Logging macro and utilities.

Typedef Documentation

◆ LoggerCRef

using logging::LoggerCRef = typedef const impl::LoggerBase&

Definition at line 19 of file null_logger.hpp.

◆ LoggerPtr

typedef std::shared_ptr< impl::LoggerBase > logging::LoggerPtr

Definition at line 24 of file logger.hpp.

◆ LoggerRef

using logging::LoggerRef = typedef impl::LoggerBase&

Definition at line 18 of file null_logger.hpp.

Enumeration Type Documentation

◆ Format

enum class logging::Format
strong

Log formats.

Definition at line 13 of file format.hpp.

◆ Level

enum class logging::Level
strong

Log levels.

Definition at line 15 of file level.hpp.

Function Documentation

◆ GetNullLogger()

LoggerRef logging::GetNullLogger ( )
noexcept

Returns a logger that drops all incoming messages.

See also
components::Logging

◆ MakeFileLogger()

LoggerPtr logging::MakeFileLogger ( const std::string &  name,
const std::string &  path,
Format  format,
Level  level = Level::kInfo 
)

Creates synchronous file logger with default tskv pattern.

Parameters
namelogger name, for internal use, must be unique
pathtarget log file path
See also
components::Logging

◆ MakeNullLogger()

LoggerPtr logging::MakeNullLogger ( )

Creates a logger that drops all incoming messages.

Use GetNullLogger() is you need a reference to logger.

See also
components::Logging

◆ MakeStderrLogger()

LoggerPtr logging::MakeStderrLogger ( const std::string &  name,
Format  format,
Level  level = Level::kInfo 
)

Creates synchronous stderr logger with default tskv pattern.

Parameters
namelogger name, for internal use, must be unique
See also
components::Logging

◆ MakeStdoutLogger()

LoggerPtr logging::MakeStdoutLogger ( const std::string &  name,
Format  format,
Level  level = Level::kInfo 
)

Creates synchronous stdout logger with default tskv pattern.

Parameters
namelogger name, for internal use, must be unique
See also
components::Logging

◆ operator<<() [1/6]

template<typename T >
LogHelper & logging::operator<< ( LogHelper lh,
const std::atomic< T > &  value 
)

Definition at line 220 of file log_helper.hpp.

◆ operator<<() [2/6]

template<typename T >
LogHelper & logging::operator<< ( LogHelper lh,
const std::optional< T > &  value 
)

Definition at line 242 of file log_helper.hpp.

◆ operator<<() [3/6]

template<typename T >
LogHelper & logging::operator<< ( LogHelper lh,
const T *  value 
)

Definition at line 225 of file log_helper.hpp.

◆ operator<<() [4/6]

template<class Result , class... Args>
LogHelper & logging::operator<< ( LogHelper lh,
Result(*)(Args...)   
)

Definition at line 251 of file log_helper.hpp.

◆ operator<<() [5/6]

LogHelper & logging::operator<< ( LogHelper lh,
std::error_code  ec 
)
inline

Definition at line 213 of file log_helper.hpp.

◆ operator<<() [6/6]

template<typename T >
LogHelper & logging::operator<< ( LogHelper lh,
T *  value 
)

Definition at line 237 of file log_helper.hpp.

Variable Documentation

◆ kLevelMax

constexpr auto logging::kLevelMax = static_cast<int>(Level::kNone)
inlineconstexpr

Definition at line 25 of file level.hpp.