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