Public Member Functions | List of all members
gazebo::util::LogRecord Class Reference

addtogroup gazebo_util More...

#include <util/util.hh>

Inheritance diagram for gazebo::util::LogRecord:
Inheritance graph
[legend]

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...
 
std::string GetBasePath () const GAZEBO_DEPRECATED(7.0)
 Get the base path for a log recording. More...
 
unsigned int GetBufferSize () const GAZEBO_DEPRECATED(7.0)
 Get the size of the buffer. More...
 
const std::string & GetEncoding () const GAZEBO_DEPRECATED(7.0)
 Get the encoding used. More...
 
std::string GetFilename (const std::string &_name="") const GAZEBO_DEPRECATED(7.0)
 Get the filename for a log object. More...
 
unsigned int GetFileSize (const std::string &_name="") const GAZEBO_DEPRECATED(7.0)
 Get the file size for a log object. More...
 
bool GetFirstUpdate () const GAZEBO_DEPRECATED(7.0)
 Return true if an Update has not yet been completed. More...
 
bool GetPaused () const GAZEBO_DEPRECATED(7.0)
 Get whether logging is paused. More...
 
bool GetRunning () const GAZEBO_DEPRECATED(7.0)
 Get whether logging is running. More...
 
common::Time GetRunTime () const GAZEBO_DEPRECATED(7.0)
 Get the run time in sim time. 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...
 

Additional Inherited Members

- Static Public Member Functions inherited from SingletonT< LogRecord >
static LogRecord * Instance ()
 Get an instance of the singleton. More...
 
- Protected Member Functions inherited from SingletonT< LogRecord >
 SingletonT ()
 Constructor. More...
 
virtual ~SingletonT ()
 Destructor. 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 gazebo::util::LogRecord::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 gazebo::util::LogRecord::BasePath ( ) const

Get the base path for a log recording.

Returns
Path for log recording.
unsigned int gazebo::util::LogRecord::BufferSize ( ) const

Get the size of the buffer.

Returns
Size of the buffer, in bytes.
const std::string& gazebo::util::LogRecord::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 gazebo::util::LogRecord::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 gazebo::util::LogRecord::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 gazebo::util::LogRecord::Fini ( )

Finialize, and shutdown.

bool gazebo::util::LogRecord::FirstUpdate ( ) const

Return true if an Update has not yet been completed.

Returns
True if an Update has not yet been completed.
std::string gazebo::util::LogRecord::GetBasePath ( ) const

Get the base path for a log recording.

Returns
Path for log recording.
Deprecated:
See BasePath() const
unsigned int gazebo::util::LogRecord::GetBufferSize ( ) const

Get the size of the buffer.

Returns
Size of the buffer, in bytes.
Deprecated:
See BufferSize() const
const std::string& gazebo::util::LogRecord::GetEncoding ( ) 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.
Deprecated:
See Encoding() const
std::string gazebo::util::LogRecord::GetFilename ( 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.
Deprecated:
See Filename(const std::string &) const
unsigned int gazebo::util::LogRecord::GetFileSize ( const std::string &  _name = "") const

Get the file size for a log object.

Parameters
[in]_nameName of the log object.
Returns
Size in bytes.
Deprecated:
See FileSize(const std::string) const
bool gazebo::util::LogRecord::GetFirstUpdate ( ) const

Return true if an Update has not yet been completed.

Returns
True if an Update has not yet been completed.
Deprecated:
See FirstUpdate()
bool gazebo::util::LogRecord::GetPaused ( ) const

Get whether logging is paused.

Returns
True if logging is paused.
See Also
LogRecord::SetPaused
Deprecated:
See Paused() const
bool gazebo::util::LogRecord::GetRunning ( ) const

Get whether logging is running.

Returns
True if logging has been started.
Deprecated:
See Running() const
common::Time gazebo::util::LogRecord::GetRunTime ( ) const

Get the run time in sim time.

Returns
Run sim time.
Deprecated:
See RunTime() const
bool gazebo::util::LogRecord::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.
bool gazebo::util::LogRecord::IsReadyToStart ( ) const

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

void gazebo::util::LogRecord::Notify ( )

Tell the recorder that an update should occur.

bool gazebo::util::LogRecord::Paused ( ) const

Get whether logging is paused.

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

Get whether logging is running.

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

Get the run time in sim time.

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

Set the base path.

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

Stop the logger.

void gazebo::util::LogRecord::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: