All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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]
Collaboration diagram for gazebo::util::LogRecord:
Collaboration 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. More...
 
void Fini ()
 Finialize, and shutdown. More...
 
std::string GetBasePath () const
 Get the base path for a log recording. More...
 
unsigned int GetBufferSize () const
 Get the size of the buffer. More...
 
const std::string & GetEncoding () const
 Get the encoding used. More...
 
std::string GetFilename (const std::string &_name="") const
 Get the filename for a log object. More...
 
unsigned int GetFileSize (const std::string &_name="") const
 Get the file size for a log object. More...
 
bool GetFirstUpdate () const
 Return true if an Update has not yet been completed. More...
 
bool GetPaused () const
 Get whether logging is paused. More...
 
bool GetRunning () const
 Get whether logging is running. More...
 
common::Time GetRunTime () const
 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 Remove (const std::string &_name)
 Remove an entity from a log. More...
 
void SetBasePath (const std::string &_path)
 Set the base path. More...
 
void SetPaused (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 (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,
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
void gazebo::util::LogRecord::Fini ( )

Finialize, and shutdown.

std::string gazebo::util::LogRecord::GetBasePath ( ) const

Get the base path for a log recording.

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

Get the size of the buffer.

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

Get whether logging is paused.

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

Get whether logging is running.

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

Get the run time in sim time.

Returns
Run sim time.
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::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::util::LogRecord::SetBasePath ( const std::string &  _path)

Set the base path.

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