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...
 
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...
 
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...
 
void SetBasePath (const std::string &_path)
 Set the base path. More...
 
void SetPaused (const bool _paused)
 Set whether logging should pause. 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

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
std::string BasePath ( ) const

Get the base path for a log recording.

Returns
Path for log recording.
unsigned int BufferSize ( ) const

Get the size of the buffer.

Returns
Size of the buffer, in bytes.
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.
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.
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.
void Fini ( )

Finialize, and shutdown.

bool FirstUpdate ( ) const

Return true if an Update has not yet been completed.

Returns
True if an Update has not yet been completed.
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.
static LogRecord * Instance ( )
inlinestaticinherited

Get an instance of the singleton.

bool IsReadyToStart ( ) const

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

void Notify ( )

Tell the recorder that an update should occur.

bool Paused ( ) const

Get whether logging is paused.

Returns
True if logging is paused.
See also
LogRecord::SetPaused
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.
bool Running ( ) const

Get whether logging is running.

Returns
True if logging has been started.
common::Time RunTime ( ) const

Get the run time in sim time.

Returns
Run sim time.
void SetBasePath ( const std::string &  _path)

Set the base path.

Parameters
[in]_pathPath to the new logging location.
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
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.
void Stop ( )

Stop the logger.

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: