FinanceSim 0.1.0
Financial Simulation Library
Loading...
Searching...
No Matches
financesim::Logger Class Reference

#include <logger.hpp>

Collaboration diagram for financesim::Logger:
[legend]

Public Member Functions

 Logger ()
 
 ~Logger ()
 
 Logger (const Logger &)=delete
 
Loggeroperator= (const Logger &)=delete
 
void set_level (LogLevel level)
 Set the minimum log level (events below this level are ignored)
 
LogLevel level () const
 Get the current log level.
 
void add_writer (LogWriterPtr writer)
 Add a writer for output (Logger takes ownership via shared_ptr)
 
void clear_writers ()
 Remove all writers.
 
void add_type_filter (const std::string &type_name)
 
void clear_type_filters ()
 Clear all type filters (log all types)
 
void add_source_filter (const std::string &source_id)
 
void clear_source_filters ()
 Clear all source filters (log all sources)
 
void set_time_range (SimTime start, SimTime end)
 Set time range filter.
 
void clear_time_range ()
 Clear time range filter.
 
void attach (EventBus &bus)
 Attach to an EventBus (starts logging)
 
void detach ()
 Detach from the current EventBus (stops logging)
 
void flush ()
 Flush all writers.
 
bool is_attached () const
 Check if attached to an EventBus.
 

Private Member Functions

void on_event (const EventPtr &event)
 
bool passes_filters (const Event &event) const
 
LogLevel classify_event (const Event &event) const
 

Private Attributes

LogLevel level_ = LogLevel::INFO
 
std::vector< LogWriterPtrwriters_
 
std::set< std::string > type_filters_
 
std::set< std::string > source_filters_
 
SimTime time_start_ = -1.0
 
SimTime time_end_ = -1.0
 
bool time_filter_active_ = false
 
EventBusbus_ = nullptr
 
SubscriptionId subscription_id_ = 0
 

Detailed Description

Logger service that subscribes to EventBus and writes events to configured writers The Logger is a service, not a Model - it doesn't need scheduled execution

Definition at line 15 of file logger.hpp.

Constructor & Destructor Documentation

◆ Logger() [1/2]

financesim::Logger::Logger ( )
default

◆ ~Logger()

financesim::Logger::~Logger ( )

Definition at line 7 of file logger.cpp.

References detach(), flush(), and writers_.

Here is the call graph for this function:

◆ Logger() [2/2]

financesim::Logger::Logger ( const Logger )
delete

Member Function Documentation

◆ add_source_filter()

void financesim::Logger::add_source_filter ( const std::string &  source_id)

Add source ID filter (only log events from these sources) If no filters are set, all sources are logged

Definition at line 38 of file logger.cpp.

References source_filters_.

Referenced by PYBIND11_MODULE().

Here is the caller graph for this function:

◆ add_type_filter()

void financesim::Logger::add_type_filter ( const std::string &  type_name)

Add event type filter (only log these types) If no filters are set, all event types are logged

Definition at line 30 of file logger.cpp.

References type_filters_.

Referenced by PYBIND11_MODULE().

Here is the caller graph for this function:

◆ add_writer()

void financesim::Logger::add_writer ( LogWriterPtr  writer)

Add a writer for output (Logger takes ownership via shared_ptr)

Definition at line 19 of file logger.cpp.

References writers_.

Referenced by PYBIND11_MODULE().

Here is the caller graph for this function:

◆ attach()

void financesim::Logger::attach ( EventBus bus)

Attach to an EventBus (starts logging)

Definition at line 56 of file logger.cpp.

References bus_, detach(), on_event(), financesim::EventBus::subscribe_all(), and subscription_id_.

Referenced by PYBIND11_MODULE().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ classify_event()

LogLevel financesim::Logger::classify_event ( const Event event) const
private

Definition at line 118 of file logger.cpp.

References financesim::INFO.

Referenced by on_event().

Here is the caller graph for this function:

◆ clear_source_filters()

void financesim::Logger::clear_source_filters ( )

Clear all source filters (log all sources)

Definition at line 42 of file logger.cpp.

References source_filters_.

Referenced by PYBIND11_MODULE().

Here is the caller graph for this function:

◆ clear_time_range()

void financesim::Logger::clear_time_range ( )

Clear time range filter.

Definition at line 52 of file logger.cpp.

References time_filter_active_.

Referenced by PYBIND11_MODULE().

Here is the caller graph for this function:

◆ clear_type_filters()

void financesim::Logger::clear_type_filters ( )

Clear all type filters (log all types)

Definition at line 34 of file logger.cpp.

References type_filters_.

Referenced by PYBIND11_MODULE().

Here is the caller graph for this function:

◆ clear_writers()

void financesim::Logger::clear_writers ( )

Remove all writers.

Definition at line 23 of file logger.cpp.

References writers_.

Referenced by PYBIND11_MODULE().

Here is the caller graph for this function:

◆ detach()

void financesim::Logger::detach ( )

Detach from the current EventBus (stops logging)

Definition at line 66 of file logger.cpp.

References bus_, subscription_id_, and financesim::EventBus::unsubscribe().

Referenced by attach(), PYBIND11_MODULE(), and ~Logger().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ flush()

void financesim::Logger::flush ( )

Flush all writers.

Definition at line 74 of file logger.cpp.

References writers_.

Referenced by PYBIND11_MODULE(), and ~Logger().

Here is the caller graph for this function:

◆ is_attached()

bool financesim::Logger::is_attached ( ) const
inline

Check if attached to an EventBus.

Definition at line 66 of file logger.hpp.

References subscription_id_.

Referenced by PYBIND11_MODULE().

Here is the caller graph for this function:

◆ level()

LogLevel financesim::Logger::level ( ) const
inline

Get the current log level.

Definition at line 28 of file logger.hpp.

References level_.

Referenced by PYBIND11_MODULE(), and set_level().

Here is the caller graph for this function:

◆ on_event()

void financesim::Logger::on_event ( const EventPtr event)
private

Definition at line 80 of file logger.cpp.

References classify_event(), level_, passes_filters(), and writers_.

Referenced by attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

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

◆ passes_filters()

bool financesim::Logger::passes_filters ( const Event event) const
private

Definition at line 92 of file logger.cpp.

References source_filters_, financesim::Event::source_id(), time_end_, time_filter_active_, type_filters_, and financesim::Event::type_name().

Referenced by on_event().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_level()

void financesim::Logger::set_level ( LogLevel  level)

Set the minimum log level (events below this level are ignored)

Definition at line 15 of file logger.cpp.

References level(), and level_.

Referenced by PYBIND11_MODULE().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_time_range()

void financesim::Logger::set_time_range ( SimTime  start,
SimTime  end 
)

Set time range filter.

Definition at line 46 of file logger.cpp.

References time_end_, time_filter_active_, and time_start_.

Referenced by PYBIND11_MODULE().

Here is the caller graph for this function:

Member Data Documentation

◆ bus_

EventBus* financesim::Logger::bus_ = nullptr
private

Definition at line 81 of file logger.hpp.

Referenced by attach(), and detach().

◆ level_

LogLevel financesim::Logger::level_ = LogLevel::INFO
private

Definition at line 73 of file logger.hpp.

Referenced by level(), on_event(), and set_level().

◆ source_filters_

std::set<std::string> financesim::Logger::source_filters_
private

Definition at line 76 of file logger.hpp.

Referenced by add_source_filter(), clear_source_filters(), and passes_filters().

◆ subscription_id_

SubscriptionId financesim::Logger::subscription_id_ = 0
private

Definition at line 82 of file logger.hpp.

Referenced by attach(), detach(), and is_attached().

◆ time_end_

SimTime financesim::Logger::time_end_ = -1.0
private

Definition at line 78 of file logger.hpp.

Referenced by passes_filters(), and set_time_range().

◆ time_filter_active_

bool financesim::Logger::time_filter_active_ = false
private

Definition at line 79 of file logger.hpp.

Referenced by clear_time_range(), passes_filters(), and set_time_range().

◆ time_start_

SimTime financesim::Logger::time_start_ = -1.0
private

Definition at line 77 of file logger.hpp.

Referenced by set_time_range().

◆ type_filters_

std::set<std::string> financesim::Logger::type_filters_
private

Definition at line 75 of file logger.hpp.

Referenced by add_type_filter(), clear_type_filters(), and passes_filters().

◆ writers_

std::vector<LogWriterPtr> financesim::Logger::writers_
private

Definition at line 74 of file logger.hpp.

Referenced by add_writer(), clear_writers(), flush(), on_event(), and ~Logger().


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