All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
gazebo::common::LogRecord Class Reference

addtogroup gazebo_common More...

#include <common/common.hh>

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

Public Member Functions

void Add (const std::string &_name, const std::string &_filename, boost::function< bool(std::ostringstream &)> _logCallback)
 Add an object to a log file.
 
const std::string & GetEncoding () const
 Get the encoding used.
 
bool Init (const std::string &_subdir)
 Initialize logging into a subdirectory.
 
bool Remove (const std::string &_name)
 Remove an entity from a log.
 
void Start (const std::string &_encoding="bz2")
 Start the logger.
 
void Stop ()
 Stop the logger.
 

Additional Inherited Members

- Static Public Member Functions inherited from SingletonT< T >
static T * Instance ()
 Get an instance of the singleton.
 
- Protected Member Functions inherited from SingletonT< T >
 SingletonT ()
 Constructor.
 
virtual ~SingletonT ()
 Destructor.
 

Detailed Description

addtogroup gazebo_common

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::common::LogRecord::Add ( const std::string &  _name,
const std::string &  _filename,
boost::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
const std::string& gazebo::common::LogRecord::GetEncoding ( ) const

Get the encoding used.

Returns
Either [txt, or bz2], where txt is plain txt and bz2 is bzip2 compressed data with Base64 encoding.
bool gazebo::common::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::common::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.
void gazebo::common::LogRecord::Start ( const std::string &  _encoding = "bz2")

Start the logger.

Parameters
[in]_encodingThe type of encoding (txt, or bz2).
void gazebo::common::LogRecord::Stop ( )

Stop the logger.


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