Ember
Loading...
Searching...
No Matches
EmberCore::Logger Class Reference

Core logging system with filtering and formatting capabilities. More...

#include <Logger.h>

Public Types

using ObserverId = size_t

Public Member Functions

 Logger ()
 ~Logger ()=default
void Trace (const EmberCore::String &category, const EmberCore::String &message)
void Info (const EmberCore::String &category, const EmberCore::String &message)
void Warning (const EmberCore::String &category, const EmberCore::String &message)
void Error (const EmberCore::String &category, const EmberCore::String &message)
void Critical (const EmberCore::String &category, const EmberCore::String &message)
void Log (LogLevel level, const EmberCore::String &category, const EmberCore::String &message)
void SetMinLogLevel (LogLevel level)
LogLevel GetMinLogLevel () const
void SetMaxEntries (size_t max_entries)
size_t GetMaxEntries () const
void SetConsoleLoggingEnabled (bool enabled)
bool IsConsoleLoggingEnabled () const
void SetFileLoggingEnabled (bool enabled)
bool IsFileLoggingEnabled () const
void SetConsoleColorsEnabled (bool enabled)
const std::vector< std::shared_ptr< LogEntry > > & GetEntries () const
void ClearEntries ()
std::vector< std::shared_ptr< LogEntry > > GetFilteredEntries (LogLevel level_filter=LogLevel::All, const EmberCore::String &category_filter="", const EmberCore::String &search_text="") const
ObserverId AddObserver (std::function< void()> observer)
void RemoveObserver (ObserverId id)

Static Public Member Functions

static LoggerGetInstance ()

Private Member Functions

void NotifyObservers ()
void TrimEntries ()

Private Attributes

std::vector< std::shared_ptr< LogEntry > > entries_
LogLevel min_log_level_ = LogLevel::All
size_t max_entries_ = 1000
std::map< ObserverId, std::function< void()> > observers_
ObserverId next_observer_id_ = 1
bool console_logging_enabled_ = true
bool file_logging_enabled_ = true

Detailed Description

Core logging system with filtering and formatting capabilities.

Definition at line 44 of file Logger.h.

Member Typedef Documentation

◆ ObserverId

Definition at line 87 of file Logger.h.

Constructor & Destructor Documentation

◆ Logger()

EmberCore::Logger::Logger ( )

Definition at line 90 of file Logger.cpp.

◆ ~Logger()

EmberCore::Logger::~Logger ( )
default

Member Function Documentation

◆ AddObserver()

Logger::ObserverId EmberCore::Logger::AddObserver ( std::function< void()> observer)

Definition at line 216 of file Logger.cpp.

◆ ClearEntries()

void EmberCore::Logger::ClearEntries ( )

Definition at line 214 of file Logger.cpp.

◆ Critical()

void EmberCore::Logger::Critical ( const EmberCore::String & category,
const EmberCore::String & message )

Definition at line 117 of file Logger.cpp.

◆ Error()

void EmberCore::Logger::Error ( const EmberCore::String & category,
const EmberCore::String & message )

Definition at line 113 of file Logger.cpp.

◆ GetEntries()

const std::vector< std::shared_ptr< LogEntry > > & EmberCore::Logger::GetEntries ( ) const
inline

Definition at line 77 of file Logger.h.

◆ GetFilteredEntries()

std::vector< std::shared_ptr< LogEntry > > EmberCore::Logger::GetFilteredEntries ( LogLevel level_filter = LogLevel::All,
const EmberCore::String & category_filter = "",
const EmberCore::String & search_text = "" ) const

Definition at line 169 of file Logger.cpp.

◆ GetInstance()

Logger & EmberCore::Logger::GetInstance ( )
static

Definition at line 251 of file Logger.cpp.

◆ GetMaxEntries()

size_t EmberCore::Logger::GetMaxEntries ( ) const
inline

Definition at line 64 of file Logger.h.

◆ GetMinLogLevel()

LogLevel EmberCore::Logger::GetMinLogLevel ( ) const
inline

Definition at line 61 of file Logger.h.

◆ Info()

void EmberCore::Logger::Info ( const EmberCore::String & category,
const EmberCore::String & message )

Definition at line 105 of file Logger.cpp.

◆ IsConsoleLoggingEnabled()

bool EmberCore::Logger::IsConsoleLoggingEnabled ( ) const
inline

Definition at line 68 of file Logger.h.

◆ IsFileLoggingEnabled()

bool EmberCore::Logger::IsFileLoggingEnabled ( ) const
inline

Definition at line 71 of file Logger.h.

◆ Log()

void EmberCore::Logger::Log ( LogLevel level,
const EmberCore::String & category,
const EmberCore::String & message )

Definition at line 121 of file Logger.cpp.

◆ NotifyObservers()

void EmberCore::Logger::NotifyObservers ( )
private

Definition at line 224 of file Logger.cpp.

◆ RemoveObserver()

void EmberCore::Logger::RemoveObserver ( ObserverId id)

Definition at line 222 of file Logger.cpp.

◆ SetConsoleColorsEnabled()

void EmberCore::Logger::SetConsoleColorsEnabled ( bool enabled)

Definition at line 240 of file Logger.cpp.

◆ SetConsoleLoggingEnabled()

void EmberCore::Logger::SetConsoleLoggingEnabled ( bool enabled)
inline

Definition at line 67 of file Logger.h.

◆ SetFileLoggingEnabled()

void EmberCore::Logger::SetFileLoggingEnabled ( bool enabled)
inline

Definition at line 70 of file Logger.h.

◆ SetMaxEntries()

void EmberCore::Logger::SetMaxEntries ( size_t max_entries)
inline

Definition at line 63 of file Logger.h.

◆ SetMinLogLevel()

void EmberCore::Logger::SetMinLogLevel ( LogLevel level)
inline

Definition at line 60 of file Logger.h.

◆ Trace()

void EmberCore::Logger::Trace ( const EmberCore::String & category,
const EmberCore::String & message )

Definition at line 101 of file Logger.cpp.

◆ TrimEntries()

void EmberCore::Logger::TrimEntries ( )
private

Definition at line 234 of file Logger.cpp.

◆ Warning()

void EmberCore::Logger::Warning ( const EmberCore::String & category,
const EmberCore::String & message )

Definition at line 109 of file Logger.cpp.

Member Data Documentation

◆ console_logging_enabled_

bool EmberCore::Logger::console_logging_enabled_ = true
private

Definition at line 105 of file Logger.h.

◆ entries_

std::vector<std::shared_ptr<LogEntry> > EmberCore::Logger::entries_
private

Definition at line 98 of file Logger.h.

◆ file_logging_enabled_

bool EmberCore::Logger::file_logging_enabled_ = true
private

Definition at line 106 of file Logger.h.

◆ max_entries_

size_t EmberCore::Logger::max_entries_ = 1000
private

Definition at line 100 of file Logger.h.

◆ min_log_level_

LogLevel EmberCore::Logger::min_log_level_ = LogLevel::All
private

Definition at line 99 of file Logger.h.

◆ next_observer_id_

ObserverId EmberCore::Logger::next_observer_id_ = 1
private

Definition at line 102 of file Logger.h.

◆ observers_

std::map<ObserverId, std::function<void()> > EmberCore::Logger::observers_
private

Definition at line 101 of file Logger.h.


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