se2ez
log.h
Go to the documentation of this file.
1 /* Author: Zachary Kingston */
2 
3 #ifndef SE2EZ_CORE_LOG_
4 #define SE2EZ_CORE_LOG_
5 
6 #include <boost/format.hpp>
7 #include <ompl/util/Console.h>
8 
9 namespace se2ez
10 {
11  /** \brief Logging functions.
12  * Uses boost::format for formatting, not printf.
13  */
14  namespace log
15  {
17 
18  template <class T, class... Args>
19  std::string formatRecurse(boost::format &f, T &&t, Args &&... args)
20  {
21  return formatRecurse(f % std::forward<T>(t), std::forward<Args>(args)...);
22  }
23 
24  template <typename... Args>
25  std::string format(const std::string &fmt, Args &&... args)
26  {
27  boost::format f(fmt);
28  return formatRecurse(f, std::forward<Args>(args)...);
29  }
30 
31  void showINFORM();
32 
33  void showDEBUG();
34 
35  void showDEVMSG1();
36  } // namespace log
37 } // namespace se2ez
38 
39 #define SE2EZ_ERROR(fmt, ...) \
40  ompl::msg::log(__FILE__, __LINE__, ompl::msg::LOG_ERROR, se2ez::log::format(fmt, ##__VA_ARGS__).c_str())
41 #define SE2EZ_WARN(fmt, ...) \
42  ompl::msg::log(__FILE__, __LINE__, ompl::msg::LOG_WARN, se2ez::log::format(fmt, ##__VA_ARGS__).c_str())
43 #define SE2EZ_INFORM(fmt, ...) \
44  ompl::msg::log(__FILE__, __LINE__, ompl::msg::LOG_INFO, se2ez::log::format(fmt, ##__VA_ARGS__).c_str())
45 #define SE2EZ_DEBUG(fmt, ...) \
46  ompl::msg::log(__FILE__, __LINE__, ompl::msg::LOG_DEBUG, se2ez::log::format(fmt, ##__VA_ARGS__).c_str())
47 #define SE2EZ_DEVMSG1(fmt, ...) \
48  ompl::msg::log(__FILE__, __LINE__, ompl::msg::LOG_DEV1, se2ez::log::format(fmt, ##__VA_ARGS__).c_str())
49 
50 #endif
void showDEBUG()
Definition: log.cpp:15
std::string formatRecurse(boost::format &f)
Definition: log.cpp:5
void showDEVMSG1()
Definition: log.cpp:20
std::string format(const std::string &fmt, Args &&... args)
Definition: log.h:25
void showINFORM()
Definition: log.cpp:10
Main namespace.
Definition: collision.h:11