StormByte C++ Library 0.0.9999
StormByte is a comprehensive, cross-platform C++ library aimed at easing system programming, configuration management, logging, and database handling tasks. This library provides a unified API that abstracts away the complexities and inconsistencies of different platforms (Windows, Linux).
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
StormByte::Logger Class Referencefinal

A flexible and extensible logging utility. More...

#include <logger.hxx>

Public Member Functions

 Logger (std::ostream &out, const Level &level=Level::Info, const std::string &format="[%L] %T") noexcept
 
 Logger (const Logger &)=delete
 
 Logger (Logger &&) noexcept=default
 
Loggeroperator= (const Logger &)=delete
 
Loggeroperator= (Logger &&) noexcept=default
 
 ~Logger () noexcept=default
 
Loggeroperator<< (const Level &level) noexcept
 
Loggeroperator<< (std::ostream &(*manip)(std::ostream &)) noexcept
 
Loggeroperator<< (Logger &(*manip)(Logger &) noexcept)
 Overload for manipulators.
 
template<typename T >
requires (!std::is_same_v<std::decay_t<T>, Logger& (*)(Logger&) noexcept>)
Loggeroperator<< (const T &value) noexcept
 

Static Public Member Functions

static constexpr std::string LevelToString (const Level &l) noexcept
 

Public Attributes

enum STORMBYTE_PUBLIC Level: unsigned short { LowLevel = 0
 Low level debug level.
 
enum STORMBYTE_PUBLIC Debug
 Debug level.
 
enum STORMBYTE_PUBLIC Warning
 Warning level.
 
enum STORMBYTE_PUBLIC Notice
 Notice level.
 
enum STORMBYTE_PUBLIC Info
 Info level.
 
enum STORMBYTE_PUBLIC Error
 Error level.
 
enum STORMBYTE_PUBLIC Fatal
 < Fatal level
 

Friends

STORMBYTE_PUBLIC Loggerhumanreadable_number (Logger &logger) noexcept
 
STORMBYTE_PUBLIC Loggerhumanreadable_bytes (Logger &logger) noexcept
 
STORMBYTE_PUBLIC Loggernohumanreadable (Logger &logger) noexcept
 

Detailed Description

A flexible and extensible logging utility.

The Logger class provides a robust logging mechanism with support for multiple log levels, custom formatting, and human-readable output. It is designed to be lightweight and easy to integrate into applications.

Constructor & Destructor Documentation

◆ Logger() [1/3]

StormByte::Logger::Logger ( std::ostream &  out,
const Level level = Level::Info,
const std::string &  format = "[%L] %T" 
)
noexcept

Constructor

Parameters
outoutput stream
levellog level
formatcustom format

◆ Logger() [2/3]

StormByte::Logger::Logger ( const Logger )
delete

Copy constructor

◆ Logger() [3/3]

StormByte::Logger::Logger ( Logger &&  )
defaultnoexcept

Move constructor

◆ ~Logger()

StormByte::Logger::~Logger ( )
defaultnoexcept

Destructor

Member Function Documentation

◆ LevelToString()

static constexpr std::string StormByte::Logger::LevelToString ( const Level l)
inlinestaticconstexprnoexcept

Gets Level string

Returns
string

◆ operator<<() [1/3]

Logger & StormByte::Logger::operator<< ( const Level level)
noexcept

Sets the current log level

Parameters
levellog level
Returns
Logger instance reference

◆ operator<<() [2/3]

template<typename T >
requires (!std::is_same_v<std::decay_t<T>, Logger& (*)(Logger&) noexcept>)
Logger & StormByte::Logger::operator<< ( const T value)
inlinenoexcept

Overload for operator<<

Parameters
valuevalue
Template Parameters
Ttype of value
Returns
Logger instance

◆ operator<<() [3/3]

Logger & StormByte::Logger::operator<< ( Logger &(*)(Logger &) noexcept  manip)
inline

Overload for manipulators.

Parameters
manipmanipulator
Returns
Logger instance

◆ operator=() [1/2]

Logger & StormByte::Logger::operator= ( const Logger )
delete

Assignment operator

◆ operator=() [2/2]

Logger & StormByte::Logger::operator= ( Logger &&  )
defaultnoexcept

Move operator


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