Icarus
Vehicle Simulation as a Transformable Computational Graph, built on Vulcan and Janus
Loading...
Searching...
No Matches
icarus::MissionLogger Class Reference

Mission Logger - Flight Recorder style logging. More...

#include <MissionLogger.hpp>

Public Types

using Clock = std::chrono::high_resolution_clock
using TimePoint = Clock::time_point

Public Member Functions

 MissionLogger ()
 MissionLogger (const std::string &log_file_path)
void SetConsoleLevel (LogLevel level)
 Set console log level (terminal output).
void SetFileLevel (LogLevel level)
 Set file log level (log file output).
void SetVersion (const std::string &version)
 Set simulation version string.
void SetBuildType (const std::string &build_type)
 Set build type (DEBUG/RELEASE) - auto-detected by default.
void SetProgressEnabled (bool enabled)
 Enable/disable progress display during Run.
void SetProfilingEnabled (bool enabled)
 Enable/disable profiling.
std::string GetLogFileName () const
 Get current log file name.
LogLevel GetConsoleLevel () const
 Get current console level.
bool IsProgressEnabled () const
 Check if progress is enabled.
bool IsProfilingEnabled () const
 Check if profiling is enabled.
std::chrono::nanoseconds WallElapsed () const
 Get total wall time elapsed since startup.
void SetLogFile (const std::string &path)
 Set log file path (closes existing if open).
void LogStartup ()
 Log simulation startup (splash screen) - uses Icarus engine version.
void LogSimulationConfig (const std::string &name, const std::string &version, const std::string &description="")
 Log simulation configuration info (from YAML).
void LogConfigFile (const std::string &path)
 Log configuration file path.
void LogTimeConfig (double t_start, double t_end, double dt)
 Log time configuration.
void LogIntegrator (const std::string &type)
 Log integrator type.
void LogIntegrator (IntegratorType type)
 Log integrator type (enum version).
void LogPhaseConfig (const PhaseConfig &config)
 Log phase configuration.
void BeginLifecycle (const char *lifecycle_name)
 Begin a lifecycle phase.
void EndLifecycle (double sim_time=0.0)
 End current lifecycle phase (pass current sim time for consistent timestamps).
std::string GetDictionaryPath () const
 Get the signal dictionary output path (derived from log file name).
void LogManifest (const DataDictionary &dict)
 Log the Flight Manifest (Data Dictionary).
void LogRunStart (double t_start, double t_end, double dt)
 Log simulation run start (entering RUN phase).
void LogRunProgress (double sim_time, double t_end)
 Log periodic run progress.
void LogDebrief (double sim_time, double wall_time)
 Log mission debrief (shutdown statistics).
void LogEntityLoad (const std::string &entity_name)
 Log entity loading.
void LogComponentAdd (const std::string &component_name, const std::string &type, const std::string &config_source="defaults", bool is_last=false)
 Log component addition (tree format).
void LogAssetLoad (const std::string &asset_name, const std::string &description)
 Log static asset loading.
void LogStateAllocation (std::size_t continuous, std::size_t discrete=0)
 Log state vector allocation.
void LogWiring (const std::string &source, const std::string &target, bool is_warning=false)
 Log signal wiring.
void LogWiringWarning (const std::string &message)
 Log wiring warning (multiple writers, etc.).
void LogExecutionOrder (const std::vector< std::string > &component_order)
 Log topological sort order.
void LogSchedulerOrder (double sim_rate_hz, const std::vector< SchedulerGroupConfig > &groups, const std::unordered_map< std::string, int > &divisors)
 Log scheduler execution order with groups and rates (Debug level).
void LogTrimStart (const std::string &mode, const std::vector< std::pair< std::string, double > > &targets)
 Log trim solver progress.
void LogTrimIteration (int iteration, double residual)
void LogTrimConverged (int iterations)
void LogTrimFailed (const std::string &reason)
void LogLinearModel (const staging::LinearModel &model)
 Log linear model summary (called after linearization).
void LogPhaseEvent (const std::string &from_phase, const std::string &to_phase, double sim_time)
 Log phase transition event.
void LogEvent (const std::string &event_name, double sim_time, const std::string &details="")
 Log notable event (apogee, impact, etc.).
void LogRunWarning (const std::string &source, const std::string &message, double sim_time)
 Log warning during run.
void LogRunError (const std::string &source, const std::string &message, double sim_time)
 Log error during run.
void UpdateProgress (double sim_time, double t_max, const std::map< std::string, double > &key_values={})
 Update progress display (single-line, \r overwrite).
void ClearProgress ()
 Clear progress line (call after Run completes).
void BeginComponentTiming (const std::string &component_name)
 Begin timing a component.
void EndComponentTiming ()
 End timing for current component.
std::vector< ComponentStatsGetProfilingStats () const
 Get profiling statistics.
ConsoleGetConsole ()
 Get underlying console.
const ConsoleGetConsole () const
void Log (LogLevel level, const std::string &message)
 Log raw message.
void LogTimed (LogLevel level, double sim_time, const std::string &message)

Detailed Description

Mission Logger - Flight Recorder style logging.

Provides structured logging throughout the simulation lifecycle. Outputs to both terminal (with colors) and log file (plain ASCII).

Member Typedef Documentation

◆ Clock

using icarus::MissionLogger::Clock = std::chrono::high_resolution_clock

◆ TimePoint

using icarus::MissionLogger::TimePoint = Clock::time_point

Constructor & Destructor Documentation

◆ MissionLogger() [1/2]

icarus::MissionLogger::MissionLogger ( )
inline

◆ MissionLogger() [2/2]

icarus::MissionLogger::MissionLogger ( const std::string & log_file_path)
inlineexplicit

Member Function Documentation

◆ BeginComponentTiming()

void icarus::MissionLogger::BeginComponentTiming ( const std::string & component_name)
inline

Begin timing a component.

◆ BeginLifecycle()

void icarus::MissionLogger::BeginLifecycle ( const char * lifecycle_name)
inline

Begin a lifecycle phase.

◆ ClearProgress()

void icarus::MissionLogger::ClearProgress ( )
inline

Clear progress line (call after Run completes).

◆ EndComponentTiming()

void icarus::MissionLogger::EndComponentTiming ( )
inline

End timing for current component.

◆ EndLifecycle()

void icarus::MissionLogger::EndLifecycle ( double sim_time = 0.0)
inline

End current lifecycle phase (pass current sim time for consistent timestamps).

◆ GetConsole() [1/2]

Console & icarus::MissionLogger::GetConsole ( )
inlinenodiscard

Get underlying console.

◆ GetConsole() [2/2]

const Console & icarus::MissionLogger::GetConsole ( ) const
inlinenodiscard

◆ GetConsoleLevel()

LogLevel icarus::MissionLogger::GetConsoleLevel ( ) const
inlinenodiscard

Get current console level.

◆ GetDictionaryPath()

std::string icarus::MissionLogger::GetDictionaryPath ( ) const
inlinenodiscard

Get the signal dictionary output path (derived from log file name).

◆ GetLogFileName()

std::string icarus::MissionLogger::GetLogFileName ( ) const
inlinenodiscard

Get current log file name.

◆ GetProfilingStats()

std::vector< ComponentStats > icarus::MissionLogger::GetProfilingStats ( ) const
inlinenodiscard

Get profiling statistics.

◆ IsProfilingEnabled()

bool icarus::MissionLogger::IsProfilingEnabled ( ) const
inlinenodiscard

Check if profiling is enabled.

◆ IsProgressEnabled()

bool icarus::MissionLogger::IsProgressEnabled ( ) const
inlinenodiscard

Check if progress is enabled.

◆ Log()

void icarus::MissionLogger::Log ( LogLevel level,
const std::string & message )
inline

Log raw message.

◆ LogAssetLoad()

void icarus::MissionLogger::LogAssetLoad ( const std::string & asset_name,
const std::string & description )
inline

Log static asset loading.

◆ LogComponentAdd()

void icarus::MissionLogger::LogComponentAdd ( const std::string & component_name,
const std::string & type,
const std::string & config_source = "defaults",
bool is_last = false )
inline

Log component addition (tree format).

◆ LogConfigFile()

void icarus::MissionLogger::LogConfigFile ( const std::string & path)
inline

Log configuration file path.

◆ LogDebrief()

void icarus::MissionLogger::LogDebrief ( double sim_time,
double wall_time )
inline

Log mission debrief (shutdown statistics).

◆ LogEntityLoad()

void icarus::MissionLogger::LogEntityLoad ( const std::string & entity_name)
inline

Log entity loading.

◆ LogEvent()

void icarus::MissionLogger::LogEvent ( const std::string & event_name,
double sim_time,
const std::string & details = "" )
inline

Log notable event (apogee, impact, etc.).

◆ LogExecutionOrder()

void icarus::MissionLogger::LogExecutionOrder ( const std::vector< std::string > & component_order)
inline

Log topological sort order.

◆ LogIntegrator() [1/2]

void icarus::MissionLogger::LogIntegrator ( const std::string & type)
inline

Log integrator type.

◆ LogIntegrator() [2/2]

void icarus::MissionLogger::LogIntegrator ( IntegratorType type)
inline

Log integrator type (enum version).

◆ LogLinearModel()

void icarus::MissionLogger::LogLinearModel ( const staging::LinearModel & model)
inline

Log linear model summary (called after linearization).

◆ LogManifest()

void icarus::MissionLogger::LogManifest ( const DataDictionary & dict)
inline

Log the Flight Manifest (Data Dictionary).

◆ LogPhaseConfig()

void icarus::MissionLogger::LogPhaseConfig ( const PhaseConfig & config)
inline

Log phase configuration.

◆ LogPhaseEvent()

void icarus::MissionLogger::LogPhaseEvent ( const std::string & from_phase,
const std::string & to_phase,
double sim_time )
inline

Log phase transition event.

◆ LogRunError()

void icarus::MissionLogger::LogRunError ( const std::string & source,
const std::string & message,
double sim_time )
inline

Log error during run.

◆ LogRunProgress()

void icarus::MissionLogger::LogRunProgress ( double sim_time,
double t_end )
inline

Log periodic run progress.

◆ LogRunStart()

void icarus::MissionLogger::LogRunStart ( double t_start,
double t_end,
double dt )
inline

Log simulation run start (entering RUN phase).

◆ LogRunWarning()

void icarus::MissionLogger::LogRunWarning ( const std::string & source,
const std::string & message,
double sim_time )
inline

Log warning during run.

◆ LogSchedulerOrder()

void icarus::MissionLogger::LogSchedulerOrder ( double sim_rate_hz,
const std::vector< SchedulerGroupConfig > & groups,
const std::unordered_map< std::string, int > & divisors )
inline

Log scheduler execution order with groups and rates (Debug level).

◆ LogSimulationConfig()

void icarus::MissionLogger::LogSimulationConfig ( const std::string & name,
const std::string & version,
const std::string & description = "" )
inline

Log simulation configuration info (from YAML).

◆ LogStartup()

void icarus::MissionLogger::LogStartup ( )
inline

Log simulation startup (splash screen) - uses Icarus engine version.

◆ LogStateAllocation()

void icarus::MissionLogger::LogStateAllocation ( std::size_t continuous,
std::size_t discrete = 0 )
inline

Log state vector allocation.

◆ LogTimeConfig()

void icarus::MissionLogger::LogTimeConfig ( double t_start,
double t_end,
double dt )
inline

Log time configuration.

◆ LogTimed()

void icarus::MissionLogger::LogTimed ( LogLevel level,
double sim_time,
const std::string & message )
inline

◆ LogTrimConverged()

void icarus::MissionLogger::LogTrimConverged ( int iterations)
inline

◆ LogTrimFailed()

void icarus::MissionLogger::LogTrimFailed ( const std::string & reason)
inline

◆ LogTrimIteration()

void icarus::MissionLogger::LogTrimIteration ( int iteration,
double residual )
inline

◆ LogTrimStart()

void icarus::MissionLogger::LogTrimStart ( const std::string & mode,
const std::vector< std::pair< std::string, double > > & targets )
inline

Log trim solver progress.

◆ LogWiring()

void icarus::MissionLogger::LogWiring ( const std::string & source,
const std::string & target,
bool is_warning = false )
inline

Log signal wiring.

◆ LogWiringWarning()

void icarus::MissionLogger::LogWiringWarning ( const std::string & message)
inline

Log wiring warning (multiple writers, etc.).

◆ SetBuildType()

void icarus::MissionLogger::SetBuildType ( const std::string & build_type)
inline

Set build type (DEBUG/RELEASE) - auto-detected by default.

◆ SetConsoleLevel()

void icarus::MissionLogger::SetConsoleLevel ( LogLevel level)
inline

Set console log level (terminal output).

◆ SetFileLevel()

void icarus::MissionLogger::SetFileLevel ( LogLevel level)
inline

Set file log level (log file output).

◆ SetLogFile()

void icarus::MissionLogger::SetLogFile ( const std::string & path)
inline

Set log file path (closes existing if open).

◆ SetProfilingEnabled()

void icarus::MissionLogger::SetProfilingEnabled ( bool enabled)
inline

Enable/disable profiling.

◆ SetProgressEnabled()

void icarus::MissionLogger::SetProgressEnabled ( bool enabled)
inline

Enable/disable progress display during Run.

◆ SetVersion()

void icarus::MissionLogger::SetVersion ( const std::string & version)
inline

Set simulation version string.

◆ UpdateProgress()

void icarus::MissionLogger::UpdateProgress ( double sim_time,
double t_max,
const std::map< std::string, double > & key_values = {} )
inline

Update progress display (single-line, \r overwrite).

◆ WallElapsed()

std::chrono::nanoseconds icarus::MissionLogger::WallElapsed ( ) const
inlinenodiscard

Get total wall time elapsed since startup.


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