Classes | Namespaces | Defines | Typedefs | Functions | Variables
console.h File Reference
#include "console_backend.h"
#include <cstdio>
#include <sstream>
#include <ros/time.h>
#include <cstdarg>
#include <ros/macros.h>
#include <map>
#include <vector>
#include "rosconsole/macros_generated.h"
Include dependency graph for console.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ros::console::FilterBase
 Base-class for filters. Filters allow full user-defined control over whether or not a message should print. The ROS_X_FILTER... macros provide the filtering functionality. More...
struct  ros::console::FilterParams
 Parameter structure passed to FilterBase::isEnabled(...);. Includes both input and output parameters. More...
struct  ros::console::Formatter
class  ros::console::LogAppender
struct  ros::console::LogLocation
 Internal. More...
struct  ros::console::Token

Namespaces

namespace  boost
namespace  ros
namespace  ros::console

Defines

#define __ROSCONSOLE_FUNCTION__   ""
#define ROS_LIKELY(x)   __builtin_expect((x),1)
#define ROS_LOG(level, name,...)   ROS_LOG_COND(true, level, name, __VA_ARGS__)
 Log to a given named logger at a given verbosity level, with printf-style formatting.
#define ROS_LOG_COND(cond, level, name,...)
 Log to a given named logger at a given verbosity level, only if a given condition has been met, with printf-style formatting.
#define ROS_LOG_DELAYED_THROTTLE(rate, level, name,...)
 Log to a given named logger at a given verbosity level, limited to a specific rate of printing, with printf-style formatting.
#define ROS_LOG_FILTER(filter, level, name,...)
 Log to a given named logger at a given verbosity level, with user-defined filtering, with printf-style formatting.
#define ROS_LOG_ONCE(level, name,...)
 Log to a given named logger at a given verbosity level, only the first time it is hit when enabled, with printf-style formatting.
#define ROS_LOG_STREAM(level, name, args)   ROS_LOG_STREAM_COND(true, level, name, args)
 Log to a given named logger at a given verbosity level, with stream-style formatting.
#define ROS_LOG_STREAM_COND(cond, level, name, args)
 Log to a given named logger at a given verbosity level, only if a given condition has been met, with stream-style formatting.
#define ROS_LOG_STREAM_DELAYED_THROTTLE(rate, level, name, args)
 Log to a given named logger at a given verbosity level, limited to a specific rate of printing and postponed first message.
#define ROS_LOG_STREAM_FILTER(filter, level, name, args)
 Log to a given named logger at a given verbosity level, with user-defined filtering, with stream-style formatting.
#define ROS_LOG_STREAM_ONCE(level, name, args)
 Log to a given named logger at a given verbosity level, only the first time it is hit when enabled, with printf-style formatting.
#define ROS_LOG_STREAM_THROTTLE(rate, level, name, args)
 Log to a given named logger at a given verbosity level, limited to a specific rate of printing, with printf-style formatting.
#define ROS_LOG_THROTTLE(rate, level, name,...)
 Log to a given named logger at a given verbosity level, limited to a specific rate of printing, with printf-style formatting.
#define ROS_UNLIKELY(x)   __builtin_expect((x),0)
#define ROSCONSOLE_AUTOINIT
 Initializes the rosconsole library. Usually unnecessary to call directly.
#define ROSCONSOLE_DECL
#define ROSCONSOLE_DEFAULT_NAME   ROSCONSOLE_NAME_PREFIX
#define ROSCONSOLE_DEFINE_LOCATION(cond, level, name)
#define ROSCONSOLE_MIN_SEVERITY   ROSCONSOLE_SEVERITY_DEBUG
#define ROSCONSOLE_NAME_PREFIX   ROSCONSOLE_ROOT_LOGGER_NAME "." ROSCONSOLE_PACKAGE_NAME
#define ROSCONSOLE_PACKAGE_NAME   "unknown_package"
#define ROSCONSOLE_PRINT_AT_LOCATION(...)   ROSCONSOLE_PRINT_AT_LOCATION_WITH_FILTER(0, __VA_ARGS__)
#define ROSCONSOLE_PRINT_AT_LOCATION_WITH_FILTER(filter,...)   ::ros::console::print(filter, __rosconsole_define_location__loc.logger_, __rosconsole_define_location__loc.level_, __FILE__, __LINE__, __ROSCONSOLE_FUNCTION__, __VA_ARGS__)
#define ROSCONSOLE_PRINT_STREAM_AT_LOCATION(args)   ROSCONSOLE_PRINT_STREAM_AT_LOCATION_WITH_FILTER(0, args)
#define ROSCONSOLE_PRINT_STREAM_AT_LOCATION_WITH_FILTER(filter, args)
#define ROSCONSOLE_PRINTF_ATTRIBUTE(a, b)
#define ROSCONSOLE_ROOT_LOGGER_NAME   "ros"
#define ROSCONSOLE_SEVERITY_DEBUG   0
#define ROSCONSOLE_SEVERITY_ERROR   3
#define ROSCONSOLE_SEVERITY_FATAL   4
#define ROSCONSOLE_SEVERITY_INFO   1
#define ROSCONSOLE_SEVERITY_NONE   5
#define ROSCONSOLE_SEVERITY_WARN   2

Typedefs

typedef boost::shared_ptr< Token > ros::console::TokenPtr
typedef std::vector< TokenPtr > ros::console::V_Token

Functions

ROSCONSOLE_DECL void ros::console::checkLogLocationEnabled (LogLocation *loc)
 Internal.
ROSCONSOLE_DECL void ros::console::formatToBuffer (boost::shared_array< char > &buffer, size_t &buffer_size, const char *fmt,...)
ROSCONSOLE_DECL std::string ros::console::formatToString (const char *fmt,...)
ROSCONSOLE_DECL bool ros::console::get_loggers (std::map< std::string, levels::Level > &loggers)
ROSCONSOLE_DECL void ros::console::initialize ()
 Don't call this directly. Performs any required initialization/configuration. Happens automatically when using the macro API.
ROSCONSOLE_DECL void ros::console::initializeLogLocation (LogLocation *loc, const std::string &name, Level level)
 Internal.
ROSCONSOLE_DECL void ros::console::notifyLoggerLevelsChanged ()
 Tells the system that a logger's level has changed.
ROSCONSOLE_DECL void ros::console::print (FilterBase *filter, void *logger, Level level, const char *file, int line, const char *function, const char *fmt,...) ROSCONSOLE_PRINTF_ATTRIBUTE(7
 Don't call this directly. Use the ROS_LOG() macro instead.
ROSCONSOLE_DECL void
ROSCONSOLE_DECL void 
ros::console::print (FilterBase *filter, void *logger, Level level, const std::stringstream &str, const char *file, int line, const char *function)
ROSCONSOLE_DECL void ros::console::register_appender (LogAppender *appender)
ROSCONSOLE_DECL void ros::console::registerLogLocation (LogLocation *loc)
 Registers a logging location with the system.
ROSCONSOLE_DECL bool ros::console::set_logger_level (const std::string &name, levels::Level level)
ROSCONSOLE_DECL void ros::console::setFixedFilterToken (const std::string &key, const std::string &val)
ROSCONSOLE_DECL void ros::console::setLogLocationLevel (LogLocation *loc, Level level)
 Internal.
ROSCONSOLE_DECL void ros::console::shutdown ()
ROSCONSOLE_DECL void ros::console::vformatToBuffer (boost::shared_array< char > &buffer, size_t &buffer_size, const char *fmt, va_list args)

Variables

ROSCONSOLE_DECL Formatter ros::console::g_formatter
 Only exported because the implementation need it. Do not use directly.
ROSCONSOLE_DECL bool ros::console::g_initialized = false
 Only exported because the macros need it. Do not use directly.
ROSCONSOLE_DECL std::string ros::console::g_last_error_message = "Unknown Error"
 Only exported because the TopicManager need it. Do not use directly.
struct ROSCONSOLE_DECL ros::console::LogLocation

Define Documentation

#define __ROSCONSOLE_FUNCTION__   ""

Definition at line 284 of file console.h.

#define ROS_LIKELY (   x)    __builtin_expect((x),1)

Definition at line 275 of file console.h.

#define ROS_LOG (   level,
  name,
  ... 
)    ROS_LOG_COND(true, level, name, __VA_ARGS__)

Log to a given named logger at a given verbosity level, with printf-style formatting.

Parameters:
levelOne of the levels specified in ros::console::levels::Level
nameName of the logger. Note that this is the fully qualified name, and does NOT include "ros.<package_name>". Use ROSCONSOLE_DEFAULT_NAME if you would like to use the default name.

Definition at line 558 of file console.h.

#define ROS_LOG_COND (   cond,
  level,
  name,
  ... 
)
Value:
do \
  { \
    ROSCONSOLE_DEFINE_LOCATION(cond, level, name); \
    \
    if (ROS_UNLIKELY(__rosconsole_define_location__enabled)) \
    { \
      ROSCONSOLE_PRINT_AT_LOCATION(__VA_ARGS__); \
    } \
  } while(0)

Log to a given named logger at a given verbosity level, only if a given condition has been met, with printf-style formatting.

Note:
The condition will only be evaluated if this logging statement is enabled
Parameters:
condBoolean condition to be evaluated
levelOne of the levels specified in ros::console::levels::Level
nameName of the logger. Note that this is the fully qualified name, and does NOT include "ros.<package_name>". Use ROSCONSOLE_DEFAULT_NAME if you would like to use the default name.

Definition at line 369 of file console.h.

#define ROS_LOG_DELAYED_THROTTLE (   rate,
  level,
  name,
  ... 
)
Value:
do \
  { \
    ROSCONSOLE_DEFINE_LOCATION(true, level, name); \
    ::ros::Time __ros_log_delayed_throttle__now__ = ::ros::Time::now(); \
    static double __ros_log_delayed_throttle__last_hit__ = __ros_log_delayed_throttle__now__.toSec(); \
    if (ROS_UNLIKELY(__rosconsole_define_location__enabled) && ROS_UNLIKELY(__ros_log_delayed_throttle__last_hit__ + rate <= __ros_log_delayed_throttle__now__.toSec())) \
    { \
      __ros_log_delayed_throttle__last_hit__ = __ros_log_delayed_throttle__now__.toSec(); \
      ROSCONSOLE_PRINT_AT_LOCATION(__VA_ARGS__); \
    } \
  } while(0)

Log to a given named logger at a given verbosity level, limited to a specific rate of printing, with printf-style formatting.

Parameters:
levelOne of the levels specified in ros::console::levels::Level
nameName of the logger. Note that this is the fully qualified name, and does NOT include "ros.<package_name>". Use ROSCONSOLE_DEFAULT_NAME if you would like to use the default name.
rateThe rate it should actually trigger at

Definition at line 484 of file console.h.

#define ROS_LOG_FILTER (   filter,
  level,
  name,
  ... 
)
Value:
do \
  { \
    ROSCONSOLE_DEFINE_LOCATION(true, level, name); \
    if (ROS_UNLIKELY(__rosconsole_define_location__enabled) && (filter)->isEnabled()) \
    { \
      ROSCONSOLE_PRINT_AT_LOCATION_WITH_FILTER(filter, __VA_ARGS__); \
    } \
  } while(0)

Log to a given named logger at a given verbosity level, with user-defined filtering, with printf-style formatting.

Parameters:
filterpointer to the filter to be used
levelOne of the levels specified in ros::console::levels::Level
nameName of the logger. Note that this is the fully qualified name, and does NOT include "ros.<package_name>". Use ROSCONSOLE_DEFAULT_NAME if you would like to use the default name.

Definition at line 525 of file console.h.

#define ROS_LOG_ONCE (   level,
  name,
  ... 
)
Value:
do \
  { \
    ROSCONSOLE_DEFINE_LOCATION(true, level, name); \
    static bool hit = false; \
    if (ROS_UNLIKELY(__rosconsole_define_location__enabled) && ROS_UNLIKELY(!hit)) \
    { \
      hit = true; \
      ROSCONSOLE_PRINT_AT_LOCATION(__VA_ARGS__); \
    } \
  } while(0)

Log to a given named logger at a given verbosity level, only the first time it is hit when enabled, with printf-style formatting.

Parameters:
levelOne of the levels specified in ros::console::levels::Level
nameName of the logger. Note that this is the fully qualified name, and does NOT include "ros.<package_name>". Use ROSCONSOLE_DEFAULT_NAME if you would like to use the default name.

Definition at line 405 of file console.h.

#define ROS_LOG_STREAM (   level,
  name,
  args 
)    ROS_LOG_STREAM_COND(true, level, name, args)

Log to a given named logger at a given verbosity level, with stream-style formatting.

Parameters:
levelOne of the levels specified in ros::console::levels::Level
nameName of the logger. Note that this is the fully qualified name, and does NOT include "ros.<package_name>". Use ROSCONSOLE_DEFAULT_NAME if you would like to use the default name.

Definition at line 565 of file console.h.

#define ROS_LOG_STREAM_COND (   cond,
  level,
  name,
  args 
)
Value:
do \
  { \
    ROSCONSOLE_DEFINE_LOCATION(cond, level, name); \
    if (ROS_UNLIKELY(__rosconsole_define_location__enabled)) \
    { \
      ROSCONSOLE_PRINT_STREAM_AT_LOCATION(args); \
    } \
  } while(0)

Log to a given named logger at a given verbosity level, only if a given condition has been met, with stream-style formatting.

Note:
The condition will only be evaluated if this logging statement is enabled
Parameters:
condBoolean condition to be evaluated
levelOne of the levels specified in ros::console::levels::Level
nameName of the logger. Note that this is the fully qualified name, and does NOT include "ros.<package_name>". Use ROSCONSOLE_DEFAULT_NAME if you would like to use the default name.

Definition at line 389 of file console.h.

#define ROS_LOG_STREAM_DELAYED_THROTTLE (   rate,
  level,
  name,
  args 
)
Value:
do \
  { \
    ROSCONSOLE_DEFINE_LOCATION(true, level, name); \
    ::ros::Time __ros_log_stream_delayed_throttle__now__ = ::ros::Time::now(); \
    static double __ros_log_stream_delayed_throttle__last_hit__ = __ros_log_stream_delayed_throttle__now__.toSec(); \
    if (ROS_UNLIKELY(__rosconsole_define_location__enabled) && ROS_UNLIKELY(__ros_log_stream_delayed_throttle__last_hit__ + rate <= __ros_log_stream_delayed_throttle__now__.toSec())) \
    { \
      __ros_log_stream_delayed_throttle__last_hit__ = __ros_log_stream_delayed_throttle__now__.toSec(); \
      ROSCONSOLE_PRINT_STREAM_AT_LOCATION(args); \
    } \
  } while(0)

Log to a given named logger at a given verbosity level, limited to a specific rate of printing and postponed first message.

Parameters:
levelOne of the levels specified in ros::console::levels::Level
nameName of the logger. Note that this is the fully qualified name, and does NOT include "ros.<package_name>". Use ROSCONSOLE_DEFAULT_NAME if you would like to use the default name.
rateThe rate it should actually trigger at, and the delay before which no message will be shown.

Definition at line 505 of file console.h.

#define ROS_LOG_STREAM_FILTER (   filter,
  level,
  name,
  args 
)
Value:
do \
  { \
    ROSCONSOLE_DEFINE_LOCATION(true, level, name); \
    if (ROS_UNLIKELY(__rosconsole_define_location__enabled) && (filter)->isEnabled()) \
    { \
      ROSCONSOLE_PRINT_STREAM_AT_LOCATION_WITH_FILTER(filter, args); \
    } \
  } while(0)

Log to a given named logger at a given verbosity level, with user-defined filtering, with stream-style formatting.

Parameters:
condBoolean condition to be evaluated
levelOne of the levels specified in ros::console::levels::Level
nameName of the logger. Note that this is the fully qualified name, and does NOT include "ros.<package_name>". Use ROSCONSOLE_DEFAULT_NAME if you would like to use the default name.

Definition at line 542 of file console.h.

#define ROS_LOG_STREAM_ONCE (   level,
  name,
  args 
)
Value:
do \
  { \
    ROSCONSOLE_DEFINE_LOCATION(true, level, name); \
    static bool __ros_log_stream_once__hit__ = false; \
    if (ROS_UNLIKELY(__rosconsole_define_location__enabled) && ROS_UNLIKELY(!__ros_log_stream_once__hit__)) \
    { \
      __ros_log_stream_once__hit__ = true; \
      ROSCONSOLE_PRINT_STREAM_AT_LOCATION(args); \
    } \
  } while(0)

Log to a given named logger at a given verbosity level, only the first time it is hit when enabled, with printf-style formatting.

Parameters:
levelOne of the levels specified in ros::console::levels::Level
nameName of the logger. Note that this is the fully qualified name, and does NOT include "ros.<package_name>". Use ROSCONSOLE_DEFAULT_NAME if you would like to use the default name.

Definition at line 424 of file console.h.

#define ROS_LOG_STREAM_THROTTLE (   rate,
  level,
  name,
  args 
)
Value:
do \
  { \
    ROSCONSOLE_DEFINE_LOCATION(true, level, name); \
    static double __ros_log_stream_throttle__last_hit__ = 0.0; \
    ::ros::Time __ros_log_stream_throttle__now__ = ::ros::Time::now(); \
    if (ROS_UNLIKELY(__rosconsole_define_location__enabled) && ROS_UNLIKELY(__ros_log_stream_throttle__last_hit__ + rate <= __ros_log_stream_throttle__now__.toSec())) \
    { \
      __ros_log_stream_throttle__last_hit__ = __ros_log_stream_throttle__now__.toSec(); \
      ROSCONSOLE_PRINT_STREAM_AT_LOCATION(args); \
    } \
  } while(0)

Log to a given named logger at a given verbosity level, limited to a specific rate of printing, with printf-style formatting.

Parameters:
levelOne of the levels specified in ros::console::levels::Level
nameName of the logger. Note that this is the fully qualified name, and does NOT include "ros.<package_name>". Use ROSCONSOLE_DEFAULT_NAME if you would like to use the default name.
rateThe rate it should actually trigger at

Definition at line 464 of file console.h.

#define ROS_LOG_THROTTLE (   rate,
  level,
  name,
  ... 
)
Value:
do \
  { \
    ROSCONSOLE_DEFINE_LOCATION(true, level, name); \
    static double last_hit = 0.0; \
    ::ros::Time now = ::ros::Time::now(); \
    if (ROS_UNLIKELY(__rosconsole_define_location__enabled) && ROS_UNLIKELY(last_hit + rate <= now.toSec())) \
    { \
      last_hit = now.toSec(); \
      ROSCONSOLE_PRINT_AT_LOCATION(__VA_ARGS__); \
    } \
  } while(0)

Log to a given named logger at a given verbosity level, limited to a specific rate of printing, with printf-style formatting.

Parameters:
levelOne of the levels specified in ros::console::levels::Level
nameName of the logger. Note that this is the fully qualified name, and does NOT include "ros.<package_name>". Use ROSCONSOLE_DEFAULT_NAME if you would like to use the default name.
rateThe rate it should actually trigger at

Definition at line 443 of file console.h.

#define ROS_UNLIKELY (   x)    __builtin_expect((x),0)

Definition at line 276 of file console.h.

Value:
do \
  { \
    if (ROS_UNLIKELY(!::ros::console::g_initialized)) \
    { \
      ::ros::console::initialize(); \
    } \
  } while(0)

Initializes the rosconsole library. Usually unnecessary to call directly.

Definition at line 319 of file console.h.

#define ROSCONSOLE_DECL

Definition at line 58 of file console.h.

Definition at line 296 of file console.h.

#define ROSCONSOLE_DEFINE_LOCATION (   cond,
  level,
  name 
)
Value:
ROSCONSOLE_AUTOINIT; \
  static ::ros::console::LogLocation __rosconsole_define_location__loc = {false, false, ::ros::console::levels::Count, 0}; /* Initialized at compile-time */ \
  if (ROS_UNLIKELY(!__rosconsole_define_location__loc.initialized_)) \
  { \
    initializeLogLocation(&__rosconsole_define_location__loc, name, level); \
  } \
  if (ROS_UNLIKELY(__rosconsole_define_location__loc.level_ != level)) \
  { \
    setLogLocationLevel(&__rosconsole_define_location__loc, level); \
    checkLogLocationEnabled(&__rosconsole_define_location__loc); \
  } \
  bool __rosconsole_define_location__enabled = __rosconsole_define_location__loc.logger_enabled_ && (cond);

Definition at line 328 of file console.h.

Define ROSCONSOLE_MIN_SEVERITY=ROSCONSOLE_SEVERITY_[DEBUG|INFO|WARN|ERROR|FATAL] in your build options to compile out anything below that severity

Definition at line 312 of file console.h.

Definition at line 295 of file console.h.

#define ROSCONSOLE_PACKAGE_NAME   "unknown_package"

Definition at line 291 of file console.h.

Definition at line 345 of file console.h.

#define ROSCONSOLE_PRINT_AT_LOCATION_WITH_FILTER (   filter,
  ... 
)    ::ros::console::print(filter, __rosconsole_define_location__loc.logger_, __rosconsole_define_location__loc.level_, __FILE__, __LINE__, __ROSCONSOLE_FUNCTION__, __VA_ARGS__)

Definition at line 342 of file console.h.

Definition at line 357 of file console.h.

#define ROSCONSOLE_PRINT_STREAM_AT_LOCATION_WITH_FILTER (   filter,
  args 
)
Value:
do \
  { \
    std::stringstream __rosconsole_print_stream_at_location_with_filter__ss__; \
    __rosconsole_print_stream_at_location_with_filter__ss__ << args; \
    ::ros::console::print(filter, __rosconsole_define_location__loc.logger_, __rosconsole_define_location__loc.level_, __rosconsole_print_stream_at_location_with_filter__ss__, __FILE__, __LINE__, __ROSCONSOLE_FUNCTION__); \
  } while (0)

Definition at line 349 of file console.h.

#define ROSCONSOLE_PRINTF_ATTRIBUTE (   a,
 
)

Definition at line 68 of file console.h.

#define ROSCONSOLE_ROOT_LOGGER_NAME   "ros"

Definition at line 294 of file console.h.

#define ROSCONSOLE_SEVERITY_DEBUG   0

Definition at line 299 of file console.h.

#define ROSCONSOLE_SEVERITY_ERROR   3

Definition at line 302 of file console.h.

#define ROSCONSOLE_SEVERITY_FATAL   4

Definition at line 303 of file console.h.

#define ROSCONSOLE_SEVERITY_INFO   1

Definition at line 300 of file console.h.

#define ROSCONSOLE_SEVERITY_NONE   5

Definition at line 304 of file console.h.

#define ROSCONSOLE_SEVERITY_WARN   2

Definition at line 301 of file console.h.



rosconsole
Author(s): Josh Faust
autogenerated on Tue Mar 7 2017 04:00:48