ROS logging helpers. More...
#include <cstdarg>#include <memory>#include <string>#include <ros/console.h>#include <cras_cpp_common/string_utils.hpp>#include <cras_cpp_common/log_utils/macros.h>#include <cras_cpp_common/log_utils/deprecated/macros.h>

Go to the source code of this file.
Classes | |
| class | cras::HasLogger |
Convenience base class for providing this->log and getCrasLogger(). Just add it as a base to your class and all CRAS_* logging macros should work with the logger from this class. More... | |
| class | cras::LogHelper |
| This class (reps. its descendants) provides unified access to ROS logging functions, be it ROS_* or NODELET_*. More... | |
| class | cras::RosconsoleLogHelper |
Log helper relaying all of its work to the same mechanism used by ROS_* logging macros. More... | |
| class | cras::WrapperLogHelper |
Namespaces | |
| cras | |
Typedefs | |
| typedef ::cras::LogHelper::ConstPtr | cras::LogHelperConstPtr |
Const pointer to LogHelper. More... | |
| typedef ::cras::LogHelper::Ptr | cras::LogHelperPtr |
Pointer to LogHelper. More... | |
Functions | |
| ::cras::LogHelperConstPtr | getCrasLogger () |
Get the default logger used for CRAS_* logging macros. It will never be null. More... | |
| int8_t | cras::logLevelToRosgraphMsgLevel (::ros::console::Level rosLevel) |
Convert the given rosconsole logging level to rosgraph_msgs::Log level constant. More... | |
| void | restorePreviousCrasLogger () |
| ::ros::console::Level | cras::rosgraphMsgLevelToLogLevel (uint8_t msgLevel) |
Convert the given rosgraph_msgs::Log level constant to rosconsole logging level. More... | |
| ::cras::LogHelperConstPtr | setCrasLogger (const ::cras::LogHelperConstPtr &log) |
Set the default logger used by CRAS_* macros. More... | |
ROS logging helpers.
The idea of CRAS logging system is that your code should not care whether it is running in a node or a nodelet. So it provides unified CRAS_* logging macros similar to ROS_* macros, which automatically choose a suitable logger. This choice is performed by evaluating expression getCrasLogger() in the current context. By default, it picks up the getCrasLogger() global functions which returns a logger that mimicks the ROS_* macros. When writing code inside a nodelet, the base nodelet class provides an "override" of this method that returns a logger that mimicks NODELET_* macros. Filters also have their specialized default logger. And each of your classes can have, or you can even just define a local lambda called getCrasLogger that would return the logger to use. If you want to pass a logger explicitly, use the CRAS_LOG_* variants that take logger as the first argument. You can also write your own loggers that behave very differently.
Definition in file log_utils.h.
| ::cras::LogHelperConstPtr getCrasLogger | ( | ) |
Get the default logger used for CRAS_* logging macros. It will never be null.
| void restorePreviousCrasLogger | ( | ) |
| ::cras::LogHelperConstPtr setCrasLogger | ( | const ::cras::LogHelperConstPtr & | log | ) |
Set the default logger used by CRAS_* macros.
| [in] | log | The new logger. |