LogRecord Class Reference

addtogroup gazebo_util More...

#include <util/util.hh>

Inherits SingletonT< LogRecord >.

Public Member Functions

void Add (const std::string &_name, const std::string &_filename, std::function< bool(std::ostringstream &)> _logCallback)
 Add an object to a log file. More...
 
std::string BasePath () const
 Get the base path for a log recording. More...
 
unsigned int BufferSize () const
 Get the size of the buffer. More...
 
const std::string & Encoding () const
 Get the encoding used. More...
 
std::string Filename (const std::string &_name="") const
 Get the filename for a log object. More...
 
unsigned int FileSize (const std::string &_name="") const
 Get the file size for a log object. More...
 
std::string Filter () const
 Get the log recording filter string. More...
 
void Fini ()
 Finialize, and shutdown. More...
 
bool FirstUpdate () const
 Return true if an Update has not yet been completed. More...
 
bool Init (const std::string &_subdir)
 Initialize logging into a subdirectory. More...
 
bool IsReadyToStart () const
 Get whether the logger is ready to start, which implies that any previous runs have finished. More...
 
void Notify ()
 Tell the recorder that an update should occur. More...
 
bool Paused () const
 Get whether logging is paused. More...
 
double Period () const
 Get the log recording period. More...
 
bool RecordResources () const
 Get whether the model meshes and materials are saved when recording. More...
 
bool Remove (const std::string &_name)
 Remove an entity from a log. More...
 
bool Running () const
 Get whether logging is running. More...
 
common::Time RunTime () const
 Get the run time in sim time. More...
 
bool SaveFiles (const std::set< std::string > &resources)
 Return true if all the files are saved successfully. More...
 
bool SaveModels (const std::set< std::string > &models)
 Return true if all the models are saved successfully. More...
 
void SetBasePath (const std::string &_path)
 Set the base path. More...
 
void SetFilter (const std::string &_filter)
 Set the log recording filter string. More...
 
void SetPaused (const bool _paused)
 Set whether logging should pause. More...
 
void SetPeriod (const double _period)
 Set the log recording period. More...
 
void SetRecordResources (const bool _record)
 Set whether to save model meshes and materials when recording. More...
 
bool Start (const LogRecordParams &_params)
 Start the logger. More...
 
bool Start (const std::string &_encoding="zlib", const std::string &_path="")
 Start the logger. More...
 
void Stop ()
 Stop the logger. More...
 
void Write (const bool _force=false)
 Write all logs. More...
 

Static Public Member Functions

static LogRecordInstance ()
 Get an instance of the singleton. More...
 

Detailed Description

addtogroup gazebo_util

Handles logging of data to disk

The LogRecord class is a Singleton that manages data logging of any entity within a running simulation. An entity may be a World, Model, or any of their child entities. This class only writes log files, see LogPlay for playback functionality.

State information for an entity may be logged through the LogRecord::Add function, and stopped through the LogRecord::Remove function. Data may be logged into a single file, or split into many separate files by specifying different filenames for the LogRecord::Add function.

The LogRecord is updated at the start of each simulation step. This guarantees that all data is stored.

See also
Logplay, State

Member Function Documentation

◆ Add()

void Add ( const std::string &  _name,
const std::string &  _filename,
std::function< bool(std::ostringstream &)>  _logCallback 
)

Add an object to a log file.

Add a new object to a log. An object can be any valid named object in simulation, including the world itself. Duplicate additions are ignored. Objects can be added to the same file by specifying the same _filename.

Parameters
[in]_nameName of the object to log.
[in]_filenameFilename of the log file.
[in]_logCallbackFunction used to log data for the object. Typically an object will have a log function that outputs data to the provided ofstream.
Exceptions
Exception

◆ BasePath()

std::string BasePath ( ) const

Get the base path for a log recording.

Returns
Path for log recording.

◆ BufferSize()

unsigned int BufferSize ( ) const

Get the size of the buffer.

Returns
Size of the buffer, in bytes.

◆ Encoding()

const std::string& Encoding ( ) const

Get the encoding used.

Returns
Either [txt, zlib, or bz2], where txt is plain txt and bz2 and zlib are compressed data with Base64 encoding.

◆ Filename()

std::string Filename ( const std::string &  _name = "") const

Get the filename for a log object.

Parameters
[in]_nameName of the log object.
Returns
Filename, empty string if not found.

◆ FileSize()

unsigned int FileSize ( const std::string &  _name = "") const

Get the file size for a log object.

Parameters
[in]_nameName of the log object.
Returns
Size in bytes.

◆ Filter()

std::string Filter ( ) const

Get the log recording filter string.

Returns
Log recording filter string.

◆ Fini()

void Fini ( )

Finialize, and shutdown.

◆ FirstUpdate()

bool FirstUpdate ( ) const

Return true if an Update has not yet been completed.

Returns
True if an Update has not yet been completed.

◆ Init()

bool Init ( const std::string &  _subdir)

Initialize logging into a subdirectory.

Init may only be called once, False will be returned if called multiple times.

Parameters
[in]_subdirDirectory to record to
Returns
True if successful.

◆ Instance()

static LogRecord * Instance ( )
inlinestaticinherited

Get an instance of the singleton.

◆ IsReadyToStart()

bool IsReadyToStart ( ) const

Get whether the logger is ready to start, which implies that any previous runs have finished.

◆ Notify()

void Notify ( )

Tell the recorder that an update should occur.

◆ Paused()

bool Paused ( ) const

Get whether logging is paused.

Returns
True if logging is paused.
See also
LogRecord::SetPaused

◆ Period()

double Period ( ) const

Get the log recording period.

Returns
Log recording period in seconds.

◆ RecordResources()

bool RecordResources ( ) const

Get whether the model meshes and materials are saved when recording.

Returns
True if model meshes and materials are saved when recording.

◆ Remove()

bool Remove ( const std::string &  _name)

Remove an entity from a log.

Removes an entity from the logger. The stops data recording for the entity and all its children. For example, specifying a world will stop all data logging.

Parameters
[in]_nameName of the log
Returns
True if the entity existed and was removed. False if the entity was not registered with the logger.

◆ Running()

bool Running ( ) const

Get whether logging is running.

Returns
True if logging has been started.

◆ RunTime()

common::Time RunTime ( ) const

Get the run time in sim time.

Returns
Run sim time.

◆ SaveFiles()

bool SaveFiles ( const std::set< std::string > &  resources)

Return true if all the files are saved successfully.

Returns
True if all the files are saved successfully, and false if there are errors saving the files.

◆ SaveModels()

bool SaveModels ( const std::set< std::string > &  models)

Return true if all the models are saved successfully.

Returns
True if all the models are saved successfully.

◆ SetBasePath()

void SetBasePath ( const std::string &  _path)

Set the base path.

Parameters
[in]_pathPath to the new logging location.

◆ SetFilter()

void SetFilter ( const std::string &  _filter)

Set the log recording filter string.

Parameters
[in]_filterNew log record filter regex string

◆ SetPaused()

void SetPaused ( const bool  _paused)

Set whether logging should pause.

A paused state means the log file is still open, but data is not written to it.

Parameters
[in]_pausedTrue to pause data logging.
See also
LogRecord::GetPaused

◆ SetPeriod()

void SetPeriod ( const double  _period)

Set the log recording period.

Parameters
[in]_periodNew log recording period in seconds.

◆ SetRecordResources()

void SetRecordResources ( const bool  _record)

Set whether to save model meshes and materials when recording.

Parameters
[in]_recordTrue to save model resources when recording.

◆ Start() [1/2]

bool Start ( const LogRecordParams _params)

Start the logger.

[in] _params Log recording parameters.

◆ Start() [2/2]

bool Start ( const std::string &  _encoding = "zlib",
const std::string &  _path = "" 
)

Start the logger.

Parameters
[in]_encodingThe type of encoding (txt, zlib, or bz2).
[in]_pathPath in which to store log files.

◆ Stop()

void Stop ( )

Stop the logger.

◆ Write()

void Write ( const bool  _force = false)

Write all logs.

Parameters
[in]_forceTrue to skip waiting on dataAvailableCondition.

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