Oxygen Engine
Modern C++ 3D Engine using OpenGL
Loading...
Searching...
No Matches
oe::core::Logger Class Reference

Log messages. More...

#include <OxygenEngine/core/logger.h>

Public Member Functions

 Logger ()
 Constructor.
 
LoggerStream trace (const LogVerbosity verbosity=default_log_verbosity)
 Prepare and return a logger stream to log traces.
 
LoggerStream debug (const LogVerbosity verbosity=default_log_verbosity)
 Prepare and return a logger stream to log debugs.
 
LoggerStream info (const LogVerbosity verbosity=default_log_verbosity)
 Prepare and return a logger stream to log informations.
 
LoggerStream warn (const LogVerbosity verbosity=default_log_verbosity)
 Prepare and return a logger stream to log warnings.
 
LoggerStream error (const LogVerbosity verbosity=default_log_verbosity)
 Prepare and return a logger stream to log errors.
 
LoggerStream critical (const LogVerbosity verbosity=default_log_verbosity)
 Prepare and return a logger stream to receive criticals logs.
 
LoggerStream as (LogLevel level, const LogVerbosity verbosity=default_log_verbosity)
 Log at a specific log level. Used for example if the log level is only known at runtime.
 
LoggersetDefaultLevel (const LogLevel default_level)
 Set log level used when using log << gabuzomeu or log(gabuzomeu)
 
LoggersetDefaultVerbosity (const LogVerbosity verbosity)
 Set default log verbosity used when using log << gabuzomeu or log(gabuzomeu)
 
template<typename... Args>
void operator() (fmt::format_string< Args... > format, Args &&... args)
 Log a formatted message using default level/verbosity.
 
template<typename T >
LoggerStream operator<< (T const &data)
 Log a message using streams.
 
void setHandler (std::unique_ptr< LogHandler > handler)
 Set underlying log handler.
 
LogHandlergetHandler ()
 Get underlying log handler.
 
void log (const std::ostringstream &stream, const LogLevel level=default_log_level, const LogVerbosity verbosity=default_log_verbosity)
 Log a stringstream message.
 

Static Public Member Functions

static LoggergetGlobalInstance ()
 Get the default global log instance.
 

Public Attributes

std::string name
 Logger name to display (also used as file name if log are recorded)
 
LogLevel minimum_level = LogLevel::LEVEL_TRACE
 Log level below this one won't be sent.
 
LogVerbosity verbosity = default_log_verbosity
 Verbosity flags, used to filter logs.
 

Detailed Description

Log messages.

By default logs messages are sent to stdout

See also
LogHandler / getHandler() about how it is possible to customize logs

Member Function Documentation

◆ as()

LoggerStream oe::core::Logger::as ( LogLevel  level,
const LogVerbosity  verbosity = default_log_verbosity 
)
inline

Log at a specific log level. Used for example if the log level is only known at runtime.

Parameters
levelLog level
verbosityLog verbosity
Returns
String stream to receive logs

◆ critical()

LoggerStream oe::core::Logger::critical ( const LogVerbosity  verbosity = default_log_verbosity)
inline

Prepare and return a logger stream to receive criticals logs.

Parameters
verbosityLog verbosity
Returns
String stream to receive logs

◆ debug()

LoggerStream oe::core::Logger::debug ( const LogVerbosity  verbosity = default_log_verbosity)
inline

Prepare and return a logger stream to log debugs.

Parameters
verbosityLog verbosity
Returns
String stream to receive logs

◆ error()

LoggerStream oe::core::Logger::error ( const LogVerbosity  verbosity = default_log_verbosity)
inline

Prepare and return a logger stream to log errors.

Parameters
verbosityLog verbosity
Returns
String stream to receive logs

◆ getGlobalInstance()

static Logger & oe::core::Logger::getGlobalInstance ( )
inlinestatic

Get the default global log instance.

Returns
The global logger

◆ getHandler()

LogHandler * oe::core::Logger::getHandler ( )
inline

Get underlying log handler.

Returns
current log handler

◆ info()

LoggerStream oe::core::Logger::info ( const LogVerbosity  verbosity = default_log_verbosity)
inline

Prepare and return a logger stream to log informations.

Parameters
verbosityLog verbosity
Returns
String stream to receive logs

◆ log()

void oe::core::Logger::log ( const std::ostringstream &  stream,
const LogLevel  level = default_log_level,
const LogVerbosity  verbosity = default_log_verbosity 
)

Log a stringstream message.

Parameters
streamStream to log
levelLog level
verbosityLog verbosity

◆ operator()()

template<typename... Args>
void oe::core::Logger::operator() ( fmt::format_string< Args... >  format,
Args &&...  args 
)
inline

Log a formatted message using default level/verbosity.

Example:

oe::log("{0} {2} {1}", "some", "here", "example"); // will log "some example here"
// You can also use named formats:
oe::log("This {verb} id {0}", 37, fmt::arg("verb", "is"));
core::Logger & log
Parameters
formatMessage format
argsexpanded format's values
Note
Format relies on {fmt} which is an implementation of std::format

◆ operator<<()

template<typename T >
LoggerStream oe::core::Logger::operator<< ( T const &  data)
inline

Log a message using streams.

Parameters
datadata to log
Returns
Stream to receive log

◆ setDefaultLevel()

Logger & oe::core::Logger::setDefaultLevel ( const LogLevel  default_level)
inline

Set log level used when using log << gabuzomeu or log(gabuzomeu)

Parameters
default_levelLog level
Returns
This to chain calls

◆ setDefaultVerbosity()

Logger & oe::core::Logger::setDefaultVerbosity ( const LogVerbosity  verbosity)
inline

Set default log verbosity used when using log << gabuzomeu or log(gabuzomeu)

Parameters
verbosityLog verbosity
Returns
This to chain calls

◆ setHandler()

void oe::core::Logger::setHandler ( std::unique_ptr< LogHandler handler)

Set underlying log handler.

Parameters
handlerlog handler

◆ trace()

LoggerStream oe::core::Logger::trace ( const LogVerbosity  verbosity = default_log_verbosity)
inline

Prepare and return a logger stream to log traces.

Parameters
verbosityLog verbosity
Returns
String stream to receive logs

◆ warn()

LoggerStream oe::core::Logger::warn ( const LogVerbosity  verbosity = default_log_verbosity)
inline

Prepare and return a logger stream to log warnings.

Parameters
verbosityLog verbosity
Returns
String stream to receive logs

Member Data Documentation

◆ minimum_level

LogLevel oe::core::Logger::minimum_level = LogLevel::LEVEL_TRACE

Log level below this one won't be sent.

Default is to log anything

◆ verbosity

LogVerbosity oe::core::Logger::verbosity = default_log_verbosity

Verbosity flags, used to filter logs.

Note
In default handler, only messages matching bitwise OR will be logged

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