Base class for all typed events in the simulation.
LogLevel classify_event(const Event &event) const
std::set< std::string > source_filters_
void add_type_filter(const std::string &type_name)
void add_writer(LogWriterPtr writer)
Add a writer for output (Logger takes ownership via shared_ptr)
void detach()
Detach from the current EventBus (stops logging)
void add_source_filter(const std::string &source_id)
void clear_writers()
Remove all writers.
std::set< std::string > type_filters_
bool is_attached() const
Check if attached to an EventBus.
void set_time_range(SimTime start, SimTime end)
Set time range filter.
void on_event(const EventPtr &event)
LogLevel level() const
Get the current log level.
Logger & operator=(const Logger &)=delete
void set_level(LogLevel level)
Set the minimum log level (events below this level are ignored)
void clear_type_filters()
Clear all type filters (log all types)
Logger(const Logger &)=delete
void attach(EventBus &bus)
Attach to an EventBus (starts logging)
bool passes_filters(const Event &event) const
void clear_source_filters()
Clear all source filters (log all sources)
void flush()
Flush all writers.
std::vector< LogWriterPtr > writers_
void clear_time_range()
Clear time range filter.
SubscriptionId subscription_id_
double SimTime
Represents a point in simulation time (continuous, in days)
std::shared_ptr< LogWriter > LogWriterPtr
std::size_t SubscriptionId
Subscription handle for unsubscribing.
std::shared_ptr< const Event > EventPtr
LogLevel
Log severity levels for filtering.