#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"

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... | |
| class | boost::shared_array< T > |
| struct | ros::console::Token |
Namespaces | |
| boost | |
| ros | |
| ros::console | |
Macros | |
| #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. More... | |
| #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. More... | |
| #define | ROS_LOG_DELAYED_THROTTLE(period, level, name, ...) |
| Log to a given named logger at a given verbosity level, limited to a specific rate of printing, with printf-style formatting. More... | |
| #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. More... | |
| #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. More... | |
| #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. More... | |
| #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. More... | |
| #define | ROS_LOG_STREAM_DELAYED_THROTTLE(period, 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. More... | |
| #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. More... | |
| #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. More... | |
| #define | ROS_LOG_STREAM_THROTTLE(period, 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. More... | |
| #define | ROS_LOG_THROTTLE(period, level, name, ...) |
| Log to a given named logger at a given verbosity level, limited to a specific rate of printing, with printf-style formatting. More... | |
| #define | ROS_UNLIKELY(x) __builtin_expect((x),0) |
| #define | ROSCONSOLE_AUTOINIT |
| Initializes the rosconsole library. Usually unnecessary to call directly. More... | |
| #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(NULL, __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(NULL, 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 |
| #define | ROSCONSOLE_THROTTLE_CHECK(now, last, period) (ROS_UNLIKELY(last + period <= now) || ROS_UNLIKELY(now < last)) |
| Used internally in throttle macros to determine if a new message should be logged. More... | |
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. More... | |
| ROSCONSOLE_DECL void | ros::console::deregister_appender (LogAppender *appender) |
| 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. More... | |
| ROSCONSOLE_DECL void | ros::console::initializeLogLocation (LogLocation *loc, const std::string &name, Level level) |
| Internal. More... | |
| ROSCONSOLE_DECL void | ros::console::notifyLoggerLevelsChanged () |
| Tells the system that a logger's level has changed. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| ROSCONSOLE_DECL bool | ros::console::g_initialized = false |
| Only exported because the macros need it. Do not use directly. More... | |
| ROSCONSOLE_DECL std::string | ros::console::g_last_error_message = "Unknown Error" |
| Only exported because the TopicManager need it. Do not use directly. More... | |
| struct ROSCONSOLE_DECL | ros::console::LogLocation |
| #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.
| level | One of the levels specified in ros::console::levels::Level |
| name | Name 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. |
| #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.
| cond | Boolean condition to be evaluated |
| level | One of the levels specified in ros::console::levels::Level |
| name | Name 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. |
| #define ROS_LOG_DELAYED_THROTTLE | ( | period, | |
| level, | |||
| name, | |||
| ... | |||
| ) |
Log to a given named logger at a given verbosity level, limited to a specific rate of printing, with printf-style formatting.
| level | One of the levels specified in ros::console::levels::Level |
| name | Name 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. |
| period | The period it should actually trigger at most, and the delay before which no message will be shown. If ROS time has moved backwards, it will trigger regardless. |
| #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.
| filter | pointer to the filter to be used |
| level | One of the levels specified in ros::console::levels::Level |
| name | Name 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. |
| #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.
| level | One of the levels specified in ros::console::levels::Level |
| name | Name 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. |
| #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.
| level | One of the levels specified in ros::console::levels::Level |
| name | Name 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. |
| #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.
| cond | Boolean condition to be evaluated |
| level | One of the levels specified in ros::console::levels::Level |
| name | Name 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. |
| #define ROS_LOG_STREAM_DELAYED_THROTTLE | ( | period, | |
| 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.
| level | One of the levels specified in ros::console::levels::Level |
| name | Name 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. |
| period | The period it should actually trigger at most, and the delay before which no message will be shown. If ROS time has moved backwards, it will trigger regardless. |
| #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.
| cond | Boolean condition to be evaluated |
| level | One of the levels specified in ros::console::levels::Level |
| name | Name 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. |
| #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.
| level | One of the levels specified in ros::console::levels::Level |
| name | Name 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. |
| #define ROS_LOG_STREAM_THROTTLE | ( | period, | |
| 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.
| level | One of the levels specified in ros::console::levels::Level |
| name | Name 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. |
| period | The period it should actually trigger at most. If ROS time has moved backwards, it will trigger regardless. |
| #define ROS_LOG_THROTTLE | ( | period, | |
| level, | |||
| name, | |||
| ... | |||
| ) |
Log to a given named logger at a given verbosity level, limited to a specific rate of printing, with printf-style formatting.
| level | One of the levels specified in ros::console::levels::Level |
| name | Name 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. |
| period | The period it should actually trigger at most. If ROS time has moved backwards, it will trigger regardless. |
| #define ROSCONSOLE_AUTOINIT |
Initializes the rosconsole library. Usually unnecessary to call directly.
| #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_PRINT_AT_LOCATION | ( | ... | ) | ROSCONSOLE_PRINT_AT_LOCATION_WITH_FILTER(NULL, __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(NULL, args) |
| #define ROSCONSOLE_PRINT_STREAM_AT_LOCATION_WITH_FILTER | ( | filter, | |
| args | |||
| ) |
| #define ROSCONSOLE_THROTTLE_CHECK | ( | now, | |
| last, | |||
| period | |||
| ) | (ROS_UNLIKELY(last + period <= now) || ROS_UNLIKELY(now < last)) |