15 #ifndef RCLCPP__LOGGING_HPP_
16 #define RCLCPP__LOGGING_HPP_
20 #include <type_traits>
22 #include "rclcpp/logger.hpp"
23 #include "rcutils/logging_macros.h"
26 #define RCLCPP_LOG_MIN_SEVERITY_DEBUG 0
27 #define RCLCPP_LOG_MIN_SEVERITY_INFO 1
28 #define RCLCPP_LOG_MIN_SEVERITY_WARN 2
29 #define RCLCPP_LOG_MIN_SEVERITY_ERROR 3
30 #define RCLCPP_LOG_MIN_SEVERITY_FATAL 4
31 #define RCLCPP_LOG_MIN_SEVERITY_NONE 5
33 #define RCLCPP_STATIC_ASSERT_LOGGER(logger) \
36 ::std::is_convertible_v<decltype(logger), ::rclcpp::Logger>, \
37 "First argument to logging macros must be an rclcpp::Logger"); \
46 #define RCLCPP_LOG(severity, logger, ...) \
48 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
49 RCUTILS_LOG_NAMED(severity, (logger).get_name(), __VA_ARGS__); \
60 #define RCLCPP_LOG_ONCE(severity, logger, ...) \
62 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
63 RCUTILS_LOG_ONCE_NAMED(severity, (logger).get_name(), __VA_ARGS__); \
75 #define RCLCPP_LOG_EXPRESSION(severity, logger, expression, ...) \
77 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
78 RCUTILS_LOG_EXPRESSION_NAMED(severity, expression, (logger).get_name(), __VA_ARGS__); \
90 #define RCLCPP_LOG_FUNCTION(severity, logger, function, ...) \
92 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
93 RCUTILS_LOG_FUNCTION_NAMED(severity, function, (logger).get_name(), __VA_ARGS__); \
104 #define RCLCPP_LOG_SKIPFIRST(severity, logger, ...) \
106 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
107 RCUTILS_LOG_SKIPFIRST_NAMED(severity, (logger).get_name(), __VA_ARGS__); \
110 #define RCLCPP_LOG_TIME_POINT_FUNC(clock) \
111 [&c = clock](rcutils_time_point_value_t * time_point)->rcutils_ret_t { \
113 *time_point = c.now().nanoseconds(); \
115 RCUTILS_SAFE_FWRITE_TO_STDERR( \
116 "[rclcpp|logging.hpp] RCLCPP_DEBUG_THROTTLE could not get current time stamp\n"); \
117 return RCUTILS_RET_ERROR; \
119 return RCUTILS_RET_OK; \
132 #define RCLCPP_LOG_THROTTLE(severity, logger, clock, duration, ...) \
134 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
135 RCUTILS_LOG_THROTTLE_NAMED( \
137 RCLCPP_LOG_TIME_POINT_FUNC(clock), \
139 (logger).get_name(), \
154 #define RCLCPP_LOG_SKIPFIRST_THROTTLE(severity, logger, clock, duration, ...) \
156 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
157 RCUTILS_LOG_SKIPFIRST_THROTTLE_NAMED( \
159 RCLCPP_LOG_TIME_POINT_FUNC(clock), \
161 (logger).get_name(), \
172 #define RCLCPP_LOG_STREAM(severity, logger, stream_arg) \
174 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
175 std::stringstream rclcpp_stream_ss_; \
176 rclcpp_stream_ss_ << stream_arg; \
177 RCUTILS_LOG_NAMED(severity, (logger).get_name(), "%s", rclcpp_stream_ss_.str().c_str()); \
188 #define RCLCPP_LOG_STREAM_ONCE(severity, logger, stream_arg) \
190 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
191 std::stringstream rclcpp_stream_ss_; \
192 rclcpp_stream_ss_ << stream_arg; \
193 RCUTILS_LOG_ONCE_NAMED(severity, (logger).get_name(), "%s", rclcpp_stream_ss_.str().c_str()); \
205 #define RCLCPP_LOG_STREAM_EXPRESSION(severity, logger, expression, stream_arg) \
207 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
208 std::stringstream rclcpp_stream_ss_; \
209 rclcpp_stream_ss_ << stream_arg; \
210 RCUTILS_LOG_EXPRESSION_NAMED( \
213 (logger).get_name(), \
214 "%s", rclcpp_stream_ss_.str().c_str()); \
226 #define RCLCPP_LOG_STREAM_FUNCTION(severity, logger, function, stream_arg) \
228 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
229 std::stringstream rclcpp_stream_ss_; \
230 rclcpp_stream_ss_ << stream_arg; \
231 RCUTILS_LOG_FUNCTION_NAMED( \
234 (logger).get_name(), \
235 "%s", rclcpp_stream_ss_.str().c_str()); \
246 #define RCLCPP_LOG_STREAM_SKIPFIRST(severity, logger, stream_arg) \
248 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
249 std::stringstream rclcpp_stream_ss_; \
250 rclcpp_stream_ss_ << stream_arg; \
251 RCUTILS_LOG_SKIPFIRST_NAMED( \
253 (logger).get_name(), \
254 "%s", rclcpp_stream_ss_.str().c_str()); \
267 #define RCLCPP_LOG_STREAM_THROTTLE(severity, logger, clock, duration, stream_arg) \
269 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
270 std::stringstream rclcpp_stream_ss_; \
271 rclcpp_stream_ss_ << stream_arg; \
272 RCUTILS_LOG_THROTTLE_NAMED( \
274 RCLCPP_LOG_TIME_POINT_FUNC(clock), \
276 (logger).get_name(), \
277 "%s", rclcpp_stream_ss_.str().c_str()); \
291 #define RCLCPP_LOG_STREAM_SKIPFIRST_THROTTLE(severity, logger, clock, duration, stream_arg) \
293 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
294 std::stringstream rclcpp_stream_ss_; \
295 rclcpp_stream_ss_ << stream_arg; \
296 RCUTILS_LOG_SKIPFIRST_THROTTLE_NAMED( \
298 RCLCPP_LOG_TIME_POINT_FUNC(clock), \
300 (logger).get_name(), \
301 "%s", rclcpp_stream_ss_.str().c_str()); \
311 #define RCLCPP_LOG_FMT(severity, logger, ...) \
313 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
314 RCUTILS_LOG_NAMED(severity, (logger).get_name(), "%s", std::format(__VA_ARGS__).c_str()); \
325 #define RCLCPP_LOG_FMT_ONCE(severity, logger, ...) \
327 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
328 RCUTILS_LOG_ONCE_NAMED(severity, (logger).get_name(), "%s", std::format(__VA_ARGS__).c_str()); \
340 #define RCLCPP_LOG_FMT_EXPRESSION(severity, logger, expression, ...) \
342 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
343 RCUTILS_LOG_EXPRESSION_NAMED( \
346 (logger).get_name(), \
347 "%s", std::format(__VA_ARGS__).c_str()); \
359 #define RCLCPP_LOG_FMT_FUNCTION(severity, logger, function, ...) \
361 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
362 RCUTILS_LOG_FUNCTION_NAMED( \
365 (logger).get_name(), \
366 "%s", std::format(__VA_ARGS__).c_str()); \
377 #define RCLCPP_LOG_FMT_SKIPFIRST(severity, logger, ...) \
379 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
380 RCUTILS_LOG_SKIPFIRST_NAMED( \
382 (logger).get_name(), \
383 "%s", std::format(__VA_ARGS__).c_str()); \
396 #define RCLCPP_LOG_FMT_THROTTLE(severity, logger, clock, duration, ...) \
398 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
399 RCUTILS_LOG_THROTTLE_NAMED( \
401 RCLCPP_LOG_TIME_POINT_FUNC(clock), \
403 (logger).get_name(), \
404 "%s", std::format(__VA_ARGS__).c_str()); \
418 #define RCLCPP_LOG_FMT_SKIPFIRST_THROTTLE(severity, logger, clock, duration, ...) \
420 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
421 RCUTILS_LOG_SKIPFIRST_THROTTLE_NAMED( \
423 RCLCPP_LOG_TIME_POINT_FUNC(clock), \
425 (logger).get_name(), \
426 "%s", std::format(__VA_ARGS__).c_str()); \
435 #ifndef RCLCPP_LOG_MIN_SEVERITY
436 #define RCLCPP_LOG_MIN_SEVERITY RCLCPP_LOG_MIN_SEVERITY_DEBUG
441 #if (RCLCPP_LOG_MIN_SEVERITY > RCLCPP_LOG_MIN_SEVERITY_DEBUG)
444 #define RCLCPP_DEBUG(...)
446 #define RCLCPP_DEBUG_ONCE(...)
448 #define RCLCPP_DEBUG_EXPRESSION(...)
450 #define RCLCPP_DEBUG_FUNCTION(...)
452 #define RCLCPP_DEBUG_SKIPFIRST(...)
454 #define RCLCPP_DEBUG_THROTTLE(...)
456 #define RCLCPP_DEBUG_SKIPFIRST_THROTTLE(...)
458 #define RCLCPP_DEBUG_STREAM(...)
460 #define RCLCPP_DEBUG_STREAM_ONCE(...)
462 #define RCLCPP_DEBUG_STREAM_EXPRESSION(...)
464 #define RCLCPP_DEBUG_STREAM_FUNCTION(...)
466 #define RCLCPP_DEBUG_STREAM_SKIPFIRST(...)
468 #define RCLCPP_DEBUG_STREAM_THROTTLE(...)
470 #define RCLCPP_DEBUG_STREAM_SKIPFIRST_THROTTLE(...)
472 #define RCLCPP_DEBUG_FMT(...)
474 #define RCLCPP_DEBUG_FMT_ONCE(...)
476 #define RCLCPP_DEBUG_FMT_EXPRESSION(...)
478 #define RCLCPP_DEBUG_FMT_FUNCTION(...)
480 #define RCLCPP_DEBUG_FMT_SKIPFIRST(...)
482 #define RCLCPP_DEBUG_FMT_THROTTLE(...)
484 #define RCLCPP_DEBUG_FMT_SKIPFIRST_THROTTLE(...)
491 #define RCLCPP_DEBUG(logger, ...) RCLCPP_LOG(RCUTILS_LOG_SEVERITY_DEBUG, logger, __VA_ARGS__)
497 #define RCLCPP_DEBUG_ONCE(logger, ...) \
498 RCLCPP_LOG_ONCE(RCUTILS_LOG_SEVERITY_DEBUG, logger, __VA_ARGS__)
504 #define RCLCPP_DEBUG_EXPRESSION(logger, expression, ...) \
505 RCLCPP_LOG_EXPRESSION(RCUTILS_LOG_SEVERITY_DEBUG, logger, expression, __VA_ARGS__)
511 #define RCLCPP_DEBUG_FUNCTION(logger, function, ...) \
512 RCLCPP_LOG_FUNCTION(RCUTILS_LOG_SEVERITY_DEBUG, logger, function, __VA_ARGS__)
518 #define RCLCPP_DEBUG_SKIPFIRST(logger, ...) \
519 RCLCPP_LOG_SKIPFIRST(RCUTILS_LOG_SEVERITY_DEBUG, logger, __VA_ARGS__)
525 #define RCLCPP_DEBUG_THROTTLE(logger, clock, duration, ...) \
526 RCLCPP_LOG_THROTTLE(RCUTILS_LOG_SEVERITY_DEBUG, logger, clock, duration, __VA_ARGS__)
532 #define RCLCPP_DEBUG_SKIPFIRST_THROTTLE(logger, clock, duration, ...) \
533 RCLCPP_LOG_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_DEBUG, logger, clock, duration, __VA_ARGS__)
539 #define RCLCPP_DEBUG_STREAM(logger, stream_arg) \
540 RCLCPP_LOG_STREAM(RCUTILS_LOG_SEVERITY_DEBUG, logger, stream_arg)
546 #define RCLCPP_DEBUG_STREAM_ONCE(logger, stream_arg) \
547 RCLCPP_LOG_STREAM_ONCE(RCUTILS_LOG_SEVERITY_DEBUG, logger, stream_arg)
553 #define RCLCPP_DEBUG_STREAM_EXPRESSION(logger, expression, stream_arg) \
554 RCLCPP_LOG_STREAM_EXPRESSION(RCUTILS_LOG_SEVERITY_DEBUG, logger, expression, stream_arg)
560 #define RCLCPP_DEBUG_STREAM_FUNCTION(logger, function, stream_arg) \
561 RCLCPP_LOG_STREAM_FUNCTION(RCUTILS_LOG_SEVERITY_DEBUG, logger, function, stream_args)
567 #define RCLCPP_DEBUG_STREAM_SKIPFIRST(logger, stream_arg) \
568 RCLCPP_LOG_STREAM_SKIPFIRST(RCUTILS_LOG_SEVERITY_DEBUG, logger, stream_arg)
574 #define RCLCPP_DEBUG_STREAM_THROTTLE(logger, clock, duration, stream_arg) \
575 RCLCPP_LOG_STREAM_THROTTLE(RCUTILS_LOG_SEVERITY_DEBUG, logger, clock, duration, stream_arg)
581 #define RCLCPP_DEBUG_STREAM_SKIPFIRST_THROTTLE(logger, clock, duration, stream_arg) \
582 RCLCPP_LOG_STREAM_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_DEBUG, logger, clock, duration, \
589 #define RCLCPP_DEBUG_FMT(logger, ...) \
590 RCLCPP_LOG_FMT(RCUTILS_LOG_SEVERITY_DEBUG, logger, __VA_ARGS__)
596 #define RCLCPP_DEBUG_FMT_ONCE(logger, ...) \
597 RCLCPP_LOG_FMT_ONCE(RCUTILS_LOG_SEVERITY_DEBUG, logger, __VA_ARGS__)
603 #define RCLCPP_DEBUG_FMT_EXPRESSION(logger, expression, ...) \
604 RCLCPP_LOG_FMT_EXPRESSION(RCUTILS_LOG_SEVERITY_DEBUG, logger, expression, __VA_ARGS__)
610 #define RCLCPP_DEBUG_FMT_FUNCTION(logger, function, ...) \
611 RCLCPP_LOG_FMT_FUNCTION(RCUTILS_LOG_SEVERITY_DEBUG, logger, function, __VA_ARGS__)
617 #define RCLCPP_DEBUG_FMT_SKIPFIRST(logger, ...) \
618 RCLCPP_LOG_FMT_SKIPFIRST(RCUTILS_LOG_SEVERITY_DEBUG, logger, __VA_ARGS__)
624 #define RCLCPP_DEBUG_FMT_THROTTLE(logger, clock, duration, ...) \
625 RCLCPP_LOG_FMT_THROTTLE(RCUTILS_LOG_SEVERITY_DEBUG, logger, clock, duration, __VA_ARGS__)
631 #define RCLCPP_DEBUG_FMT_SKIPFIRST_THROTTLE(logger, clock, duration, ...) \
632 RCLCPP_LOG_FMT_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_DEBUG, logger, clock, duration, \
639 #if (RCLCPP_LOG_MIN_SEVERITY > RCLCPP_LOG_MIN_SEVERITY_INFO)
642 #define RCLCPP_INFO(...)
644 #define RCLCPP_INFO_ONCE(...)
646 #define RCLCPP_INFO_EXPRESSION(...)
648 #define RCLCPP_INFO_FUNCTION(...)
650 #define RCLCPP_INFO_SKIPFIRST(...)
652 #define RCLCPP_INFO_THROTTLE(...)
654 #define RCLCPP_INFO_SKIPFIRST_THROTTLE(...)
656 #define RCLCPP_INFO_STREAM(...)
658 #define RCLCPP_INFO_STREAM_ONCE(...)
660 #define RCLCPP_INFO_STREAM_EXPRESSION(...)
662 #define RCLCPP_INFO_STREAM_FUNCTION(...)
664 #define RCLCPP_INFO_STREAM_SKIPFIRST(...)
666 #define RCLCPP_INFO_STREAM_THROTTLE(...)
668 #define RCLCPP_INFO_STREAM_SKIPFIRST_THROTTLE(...)
670 #define RCLCPP_INFO_FMT(...)
672 #define RCLCPP_INFO_FMT_ONCE(...)
674 #define RCLCPP_INFO_FMT_EXPRESSION(...)
676 #define RCLCPP_INFO_FMT_FUNCTION(...)
678 #define RCLCPP_INFO_FMT_SKIPFIRST(...)
680 #define RCLCPP_INFO_FMT_THROTTLE(...)
682 #define RCLCPP_INFO_FMT_SKIPFIRST_THROTTLE(...)
689 #define RCLCPP_INFO(logger, ...) RCLCPP_LOG(RCUTILS_LOG_SEVERITY_INFO, logger, __VA_ARGS__)
695 #define RCLCPP_INFO_ONCE(logger, ...) \
696 RCLCPP_LOG_ONCE(RCUTILS_LOG_SEVERITY_INFO, logger, __VA_ARGS__)
702 #define RCLCPP_INFO_EXPRESSION(logger, expression, ...) \
703 RCLCPP_LOG_EXPRESSION(RCUTILS_LOG_SEVERITY_INFO, logger, expression, __VA_ARGS__)
709 #define RCLCPP_INFO_FUNCTION(logger, function, ...) \
710 RCLCPP_LOG_FUNCTION(RCUTILS_LOG_SEVERITY_INFO, logger, function, __VA_ARGS__)
716 #define RCLCPP_INFO_SKIPFIRST(logger, ...) \
717 RCLCPP_LOG_SKIPFIRST(RCUTILS_LOG_SEVERITY_INFO, logger, __VA_ARGS__)
723 #define RCLCPP_INFO_THROTTLE(logger, clock, duration, ...) \
724 RCLCPP_LOG_THROTTLE(RCUTILS_LOG_SEVERITY_INFO, logger, clock, duration, __VA_ARGS__)
730 #define RCLCPP_INFO_SKIPFIRST_THROTTLE(logger, clock, duration, ...) \
731 RCLCPP_LOG_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_INFO, logger, clock, duration, __VA_ARGS__)
737 #define RCLCPP_INFO_STREAM(logger, stream_arg) \
738 RCLCPP_LOG_STREAM(RCUTILS_LOG_SEVERITY_INFO, logger, stream_arg)
744 #define RCLCPP_INFO_STREAM_ONCE(logger, stream_arg) \
745 RCLCPP_LOG_STREAM_ONCE(RCUTILS_LOG_SEVERITY_INFO, logger, stream_arg)
751 #define RCLCPP_INFO_STREAM_EXPRESSION(logger, expression, stream_arg) \
752 RCLCPP_LOG_STREAM_EXPRESSION(RCUTILS_LOG_SEVERITY_INFO, logger, expression, stream_arg)
758 #define RCLCPP_INFO_STREAM_FUNCTION(logger, function, stream_arg) \
759 RCLCPP_LOG_STREAM_FUNCTION(RCUTILS_LOG_SEVERITY_INFO, logger, function, stream_args)
765 #define RCLCPP_INFO_STREAM_SKIPFIRST(logger, stream_arg) \
766 RCLCPP_LOG_STREAM_SKIPFIRST(RCUTILS_LOG_SEVERITY_INFO, logger, stream_arg)
772 #define RCLCPP_INFO_STREAM_THROTTLE(logger, clock, duration, stream_arg) \
773 RCLCPP_LOG_STREAM_THROTTLE(RCUTILS_LOG_SEVERITY_INFO, logger, clock, duration, stream_arg)
779 #define RCLCPP_INFO_STREAM_SKIPFIRST_THROTTLE(logger, clock, duration, stream_arg) \
780 RCLCPP_LOG_STREAM_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_INFO, logger, clock, duration, \
787 #define RCLCPP_INFO_FMT(logger, ...) RCLCPP_LOG_FMT(RCUTILS_LOG_SEVERITY_INFO, logger, __VA_ARGS__)
793 #define RCLCPP_INFO_FMT_ONCE(logger, ...) \
794 RCLCPP_LOG_FMT_ONCE(RCUTILS_LOG_SEVERITY_INFO, logger, __VA_ARGS__)
800 #define RCLCPP_INFO_FMT_EXPRESSION(logger, expression, ...) \
801 RCLCPP_LOG_FMT_EXPRESSION(RCUTILS_LOG_SEVERITY_INFO, logger, expression, __VA_ARGS__)
807 #define RCLCPP_INFO_FMT_FUNCTION(logger, function, ...) \
808 RCLCPP_LOG_FMT_FUNCTION(RCUTILS_LOG_SEVERITY_INFO, logger, function, __VA_ARGS__)
814 #define RCLCPP_INFO_FMT_SKIPFIRST(logger, ...) \
815 RCLCPP_LOG_FMT_SKIPFIRST(RCUTILS_LOG_SEVERITY_INFO, logger, __VA_ARGS__)
821 #define RCLCPP_INFO_FMT_THROTTLE(logger, clock, duration, ...) \
822 RCLCPP_LOG_FMT_THROTTLE(RCUTILS_LOG_SEVERITY_INFO, logger, clock, duration, __VA_ARGS__)
828 #define RCLCPP_INFO_FMT_SKIPFIRST_THROTTLE(logger, clock, duration, ...) \
829 RCLCPP_LOG_FMT_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_INFO, logger, clock, duration, __VA_ARGS__)
835 #if (RCLCPP_LOG_MIN_SEVERITY > RCLCPP_LOG_MIN_SEVERITY_WARN)
838 #define RCLCPP_WARN(...)
840 #define RCLCPP_WARN_ONCE(...)
842 #define RCLCPP_WARN_EXPRESSION(...)
844 #define RCLCPP_WARN_FUNCTION(...)
846 #define RCLCPP_WARN_SKIPFIRST(...)
848 #define RCLCPP_WARN_THROTTLE(...)
850 #define RCLCPP_WARN_SKIPFIRST_THROTTLE(...)
852 #define RCLCPP_WARN_STREAM(...)
854 #define RCLCPP_WARN_STREAM_ONCE(...)
856 #define RCLCPP_WARN_STREAM_EXPRESSION(...)
858 #define RCLCPP_WARN_STREAM_FUNCTION(...)
860 #define RCLCPP_WARN_STREAM_SKIPFIRST(...)
862 #define RCLCPP_WARN_STREAM_THROTTLE(...)
864 #define RCLCPP_WARN_STREAM_SKIPFIRST_THROTTLE(...)
866 #define RCLCPP_WARN_FMT(...)
868 #define RCLCPP_WARN_FMT_ONCE(...)
870 #define RCLCPP_WARN_FMT_EXPRESSION(...)
872 #define RCLCPP_WARN_FMT_FUNCTION(...)
874 #define RCLCPP_WARN_FMT_SKIPFIRST(...)
876 #define RCLCPP_WARN_FMT_THROTTLE(...)
878 #define RCLCPP_WARN_FMT_SKIPFIRST_THROTTLE(...)
885 #define RCLCPP_WARN(logger, ...) RCLCPP_LOG(RCUTILS_LOG_SEVERITY_WARN, logger, __VA_ARGS__)
891 #define RCLCPP_WARN_ONCE(logger, ...) \
892 RCLCPP_LOG_ONCE(RCUTILS_LOG_SEVERITY_WARN, logger, __VA_ARGS__)
898 #define RCLCPP_WARN_EXPRESSION(logger, expression, ...) \
899 RCLCPP_LOG_EXPRESSION(RCUTILS_LOG_SEVERITY_WARN, logger, expression, __VA_ARGS__)
905 #define RCLCPP_WARN_FUNCTION(logger, function, ...) \
906 RCLCPP_LOG_FUNCTION(RCUTILS_LOG_SEVERITY_WARN, logger, function, __VA_ARGS__)
912 #define RCLCPP_WARN_SKIPFIRST(logger, ...) \
913 RCLCPP_LOG_SKIPFIRST(RCUTILS_LOG_SEVERITY_WARN, logger, __VA_ARGS__)
919 #define RCLCPP_WARN_THROTTLE(logger, clock, duration, ...) \
920 RCLCPP_LOG_THROTTLE(RCUTILS_LOG_SEVERITY_WARN, logger, clock, duration, __VA_ARGS__)
926 #define RCLCPP_WARN_SKIPFIRST_THROTTLE(logger, clock, duration, ...) \
927 RCLCPP_LOG_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_WARN, logger, clock, duration, __VA_ARGS__)
933 #define RCLCPP_WARN_STREAM(logger, stream_arg) \
934 RCLCPP_LOG_STREAM(RCUTILS_LOG_SEVERITY_WARN, logger, stream_arg)
940 #define RCLCPP_WARN_STREAM_ONCE(logger, stream_arg) \
941 RCLCPP_LOG_STREAM_ONCE(RCUTILS_LOG_SEVERITY_WARN, logger, stream_arg)
947 #define RCLCPP_WARN_STREAM_EXPRESSION(logger, expression, stream_arg) \
948 RCLCPP_LOG_STREAM_EXPRESSION(RCUTILS_LOG_SEVERITY_WARN, logger, expression, stream_arg)
954 #define RCLCPP_WARN_STREAM_FUNCTION(logger, function, stream_arg) \
955 RCLCPP_LOG_STREAM_FUNCTION(RCUTILS_LOG_SEVERITY_WARN, logger, function, stream_args)
961 #define RCLCPP_WARN_STREAM_SKIPFIRST(logger, stream_arg) \
962 RCLCPP_LOG_STREAM_SKIPFIRST(RCUTILS_LOG_SEVERITY_WARN, logger, stream_arg)
968 #define RCLCPP_WARN_STREAM_THROTTLE(logger, clock, duration, stream_arg) \
969 RCLCPP_LOG_STREAM_THROTTLE(RCUTILS_LOG_SEVERITY_WARN, logger, clock, duration, stream_arg)
975 #define RCLCPP_WARN_STREAM_SKIPFIRST_THROTTLE(logger, clock, duration, stream_arg) \
976 RCLCPP_LOG_STREAM_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_WARN, logger, clock, duration, \
983 #define RCLCPP_WARN_FMT(logger, ...) RCLCPP_LOG_FMT(RCUTILS_LOG_SEVERITY_WARN, logger, __VA_ARGS__)
989 #define RCLCPP_WARN_FMT_ONCE(logger, ...) \
990 RCLCPP_LOG_FMT_ONCE(RCUTILS_LOG_SEVERITY_WARN, logger, __VA_ARGS__)
996 #define RCLCPP_WARN_FMT_EXPRESSION(logger, expression, ...) \
997 RCLCPP_LOG_FMT_EXPRESSION(RCUTILS_LOG_SEVERITY_WARN, logger, expression, __VA_ARGS__)
1003 #define RCLCPP_WARN_FMT_FUNCTION(logger, function, ...) \
1004 RCLCPP_LOG_FMT_FUNCTION(RCUTILS_LOG_SEVERITY_WARN, logger, function, __VA_ARGS__)
1010 #define RCLCPP_WARN_FMT_SKIPFIRST(logger, ...) \
1011 RCLCPP_LOG_FMT_SKIPFIRST(RCUTILS_LOG_SEVERITY_WARN, logger, __VA_ARGS__)
1017 #define RCLCPP_WARN_FMT_THROTTLE(logger, clock, duration, ...) \
1018 RCLCPP_LOG_FMT_THROTTLE(RCUTILS_LOG_SEVERITY_WARN, logger, clock, duration, __VA_ARGS__)
1024 #define RCLCPP_WARN_FMT_SKIPFIRST_THROTTLE(logger, clock, duration, ...) \
1025 RCLCPP_LOG_FMT_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_WARN, logger, clock, duration, __VA_ARGS__)
1031 #if (RCLCPP_LOG_MIN_SEVERITY > RCLCPP_LOG_MIN_SEVERITY_ERROR)
1034 #define RCLCPP_ERROR(...)
1036 #define RCLCPP_ERROR_ONCE(...)
1038 #define RCLCPP_ERROR_EXPRESSION(...)
1040 #define RCLCPP_ERROR_FUNCTION(...)
1042 #define RCLCPP_ERROR_SKIPFIRST(...)
1044 #define RCLCPP_ERROR_THROTTLE(...)
1046 #define RCLCPP_ERROR_SKIPFIRST_THROTTLE(...)
1048 #define RCLCPP_ERROR_STREAM(...)
1050 #define RCLCPP_ERROR_STREAM_ONCE(...)
1052 #define RCLCPP_ERROR_STREAM_EXPRESSION(...)
1054 #define RCLCPP_ERROR_STREAM_FUNCTION(...)
1056 #define RCLCPP_ERROR_STREAM_SKIPFIRST(...)
1058 #define RCLCPP_ERROR_STREAM_THROTTLE(...)
1060 #define RCLCPP_ERROR_STREAM_SKIPFIRST_THROTTLE(...)
1062 #define RCLCPP_ERROR_FMT(...)
1064 #define RCLCPP_ERROR_FMT_ONCE(...)
1066 #define RCLCPP_ERROR_FMT_EXPRESSION(...)
1068 #define RCLCPP_ERROR_FMT_FUNCTION(...)
1070 #define RCLCPP_ERROR_FMT_SKIPFIRST(...)
1072 #define RCLCPP_ERROR_FMT_THROTTLE(...)
1074 #define RCLCPP_ERROR_FMT_SKIPFIRST_THROTTLE(...)
1081 #define RCLCPP_ERROR(logger, ...) RCLCPP_LOG(RCUTILS_LOG_SEVERITY_ERROR, logger, __VA_ARGS__)
1087 #define RCLCPP_ERROR_ONCE(logger, ...) \
1088 RCLCPP_LOG_ONCE(RCUTILS_LOG_SEVERITY_ERROR, logger, __VA_ARGS__)
1094 #define RCLCPP_ERROR_EXPRESSION(logger, expression, ...) \
1095 RCLCPP_LOG_EXPRESSION(RCUTILS_LOG_SEVERITY_ERROR, logger, expression, __VA_ARGS__)
1101 #define RCLCPP_ERROR_FUNCTION(logger, function, ...) \
1102 RCLCPP_LOG_FUNCTION(RCUTILS_LOG_SEVERITY_ERROR, logger, function, __VA_ARGS__)
1108 #define RCLCPP_ERROR_SKIPFIRST(logger, ...) \
1109 RCLCPP_LOG_SKIPFIRST(RCUTILS_LOG_SEVERITY_ERROR, logger, __VA_ARGS__)
1115 #define RCLCPP_ERROR_THROTTLE(logger, clock, duration, ...) \
1116 RCLCPP_LOG_THROTTLE(RCUTILS_LOG_SEVERITY_ERROR, logger, clock, duration, __VA_ARGS__)
1122 #define RCLCPP_ERROR_SKIPFIRST_THROTTLE(logger, clock, duration, ...) \
1123 RCLCPP_LOG_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_ERROR, logger, clock, duration, __VA_ARGS__)
1129 #define RCLCPP_ERROR_STREAM(logger, stream_arg) \
1130 RCLCPP_LOG_STREAM(RCUTILS_LOG_SEVERITY_ERROR, logger, stream_arg)
1136 #define RCLCPP_ERROR_STREAM_ONCE(logger, stream_arg) \
1137 RCLCPP_LOG_STREAM_ONCE(RCUTILS_LOG_SEVERITY_ERROR, logger, stream_arg)
1143 #define RCLCPP_ERROR_STREAM_EXPRESSION(logger, expression, stream_arg) \
1144 RCLCPP_LOG_STREAM_EXPRESSION(RCUTILS_LOG_SEVERITY_ERROR, logger, expression, stream_arg)
1150 #define RCLCPP_ERROR_STREAM_FUNCTION(logger, function, stream_arg) \
1151 RCLCPP_LOG_STREAM_FUNCTION(RCUTILS_LOG_SEVERITY_ERROR, logger, function, stream_args)
1157 #define RCLCPP_ERROR_STREAM_SKIPFIRST(logger, stream_arg) \
1158 RCLCPP_LOG_STREAM_SKIPFIRST(RCUTILS_LOG_SEVERITY_ERROR, logger, stream_arg)
1164 #define RCLCPP_ERROR_STREAM_THROTTLE(logger, clock, duration, stream_arg) \
1165 RCLCPP_LOG_STREAM_THROTTLE(RCUTILS_LOG_SEVERITY_ERROR, logger, clock, duration, stream_arg)
1171 #define RCLCPP_ERROR_STREAM_SKIPFIRST_THROTTLE(logger, clock, duration, stream_arg) \
1172 RCLCPP_LOG_STREAM_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_ERROR, logger, clock, duration, \
1179 #define RCLCPP_ERROR_FMT(logger, ...) \
1180 RCLCPP_LOG_FMT(RCUTILS_LOG_SEVERITY_ERROR, logger, __VA_ARGS__)
1186 #define RCLCPP_ERROR_FMT_ONCE(logger, ...) \
1187 RCLCPP_LOG_FMT_ONCE(RCUTILS_LOG_SEVERITY_ERROR, logger, __VA_ARGS__)
1193 #define RCLCPP_ERROR_FMT_EXPRESSION(logger, expression, ...) \
1194 RCLCPP_LOG_FMT_EXPRESSION(RCUTILS_LOG_SEVERITY_ERROR, logger, expression, __VA_ARGS__)
1200 #define RCLCPP_ERROR_FMT_FUNCTION(logger, function, ...) \
1201 RCLCPP_LOG_FMT_FUNCTION(RCUTILS_LOG_SEVERITY_ERROR, logger, function, __VA_ARGS__)
1207 #define RCLCPP_ERROR_FMT_SKIPFIRST(logger, ...) \
1208 RCLCPP_LOG_FMT_SKIPFIRST(RCUTILS_LOG_SEVERITY_ERROR, logger, __VA_ARGS__)
1214 #define RCLCPP_ERROR_FMT_THROTTLE(logger, clock, duration, ...) \
1215 RCLCPP_LOG_FMT_THROTTLE(RCUTILS_LOG_SEVERITY_ERROR, logger, clock, duration, __VA_ARGS__)
1221 #define RCLCPP_ERROR_FMT_SKIPFIRST_THROTTLE(logger, clock, duration, ...) \
1222 RCLCPP_LOG_FMT_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_ERROR, logger, clock, duration, \
1229 #if (RCLCPP_LOG_MIN_SEVERITY > RCLCPP_LOG_MIN_SEVERITY_FATAL)
1232 #define RCLCPP_FATAL(...)
1234 #define RCLCPP_FATAL_ONCE(...)
1236 #define RCLCPP_FATAL_EXPRESSION(...)
1238 #define RCLCPP_FATAL_FUNCTION(...)
1240 #define RCLCPP_FATAL_SKIPFIRST(...)
1242 #define RCLCPP_FATAL_THROTTLE(...)
1244 #define RCLCPP_FATAL_SKIPFIRST_THROTTLE(...)
1246 #define RCLCPP_FATAL_STREAM(...)
1248 #define RCLCPP_FATAL_STREAM_ONCE(...)
1250 #define RCLCPP_FATAL_STREAM_EXPRESSION(...)
1252 #define RCLCPP_FATAL_STREAM_FUNCTION(...)
1254 #define RCLCPP_FATAL_STREAM_SKIPFIRST(...)
1256 #define RCLCPP_FATAL_STREAM_THROTTLE(...)
1258 #define RCLCPP_FATAL_STREAM_SKIPFIRST_THROTTLE(...)
1260 #define RCLCPP_FATAL_FMT(...)
1262 #define RCLCPP_FATAL_FMT_ONCE(...)
1264 #define RCLCPP_FATAL_FMT_EXPRESSION(...)
1266 #define RCLCPP_FATAL_FMT_FUNCTION(...)
1268 #define RCLCPP_FATAL_FMT_SKIPFIRST(...)
1270 #define RCLCPP_FATAL_FMT_THROTTLE(...)
1272 #define RCLCPP_FATAL_FMT_SKIPFIRST_THROTTLE(...)
1279 #define RCLCPP_FATAL(logger, ...) RCLCPP_LOG(RCUTILS_LOG_SEVERITY_FATAL, logger, __VA_ARGS__)
1285 #define RCLCPP_FATAL_ONCE(logger, ...) \
1286 RCLCPP_LOG_ONCE(RCUTILS_LOG_SEVERITY_FATAL, logger, __VA_ARGS__)
1292 #define RCLCPP_FATAL_EXPRESSION(logger, expression, ...) \
1293 RCLCPP_LOG_EXPRESSION(RCUTILS_LOG_SEVERITY_FATAL, logger, expression, __VA_ARGS__)
1299 #define RCLCPP_FATAL_FUNCTION(logger, function, ...) \
1300 RCLCPP_LOG_FUNCTION(RCUTILS_LOG_SEVERITY_FATAL, logger, function, __VA_ARGS__)
1306 #define RCLCPP_FATAL_SKIPFIRST(logger, ...) \
1307 RCLCPP_LOG_SKIPFIRST(RCUTILS_LOG_SEVERITY_FATAL, logger, __VA_ARGS__)
1313 #define RCLCPP_FATAL_THROTTLE(logger, clock, duration, ...) \
1314 RCLCPP_LOG_THROTTLE(RCUTILS_LOG_SEVERITY_FATAL, logger, clock, duration, __VA_ARGS__)
1320 #define RCLCPP_FATAL_SKIPFIRST_THROTTLE(logger, clock, duration, ...) \
1321 RCLCPP_LOG_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_FATAL, logger, clock, duration, __VA_ARGS__)
1327 #define RCLCPP_FATAL_STREAM(logger, stream_arg) \
1328 RCLCPP_LOG_STREAM(RCUTILS_LOG_SEVERITY_FATAL, logger, stream_arg)
1334 #define RCLCPP_FATAL_STREAM_ONCE(logger, stream_arg) \
1335 RCLCPP_LOG_STREAM_ONCE(RCUTILS_LOG_SEVERITY_FATAL, logger, stream_arg)
1341 #define RCLCPP_FATAL_STREAM_EXPRESSION(logger, expression, stream_arg) \
1342 RCLCPP_LOG_STREAM_EXPRESSION(RCUTILS_LOG_SEVERITY_FATAL, logger, expression, stream_arg)
1348 #define RCLCPP_FATAL_STREAM_FUNCTION(logger, function, stream_arg) \
1349 RCLCPP_LOG_STREAM_FUNCTION(RCUTILS_LOG_SEVERITY_FATAL, logger, function, stream_args)
1355 #define RCLCPP_FATAL_STREAM_SKIPFIRST(logger, stream_arg) \
1356 RCLCPP_LOG_STREAM_SKIPFIRST(RCUTILS_LOG_SEVERITY_FATAL, logger, stream_arg)
1362 #define RCLCPP_FATAL_STREAM_THROTTLE(logger, clock, duration, stream_arg) \
1363 RCLCPP_LOG_STREAM_THROTTLE(RCUTILS_LOG_SEVERITY_FATAL, logger, clock, duration, stream_arg)
1369 #define RCLCPP_FATAL_STREAM_SKIPFIRST_THROTTLE(logger, clock, duration, stream_arg) \
1370 RCLCPP_LOG_STREAM_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_FATAL, logger, clock, duration, \
1377 #define RCLCPP_FATAL_FMT(logger, ...) \
1378 RCLCPP_LOG_FMT(RCUTILS_LOG_SEVERITY_FATAL, logger, __VA_ARGS__)
1384 #define RCLCPP_FATAL_FMT_ONCE(logger, ...) \
1385 RCLCPP_LOG_FMT_ONCE(RCUTILS_LOG_SEVERITY_FATAL, logger, __VA_ARGS__)
1391 #define RCLCPP_FATAL_FMT_EXPRESSION(logger, expression, ...) \
1392 RCLCPP_LOG_FMT_EXPRESSION(RCUTILS_LOG_SEVERITY_FATAL, logger, expression, __VA_ARGS__)
1398 #define RCLCPP_FATAL_FMT_FUNCTION(logger, function, ...) \
1399 RCLCPP_LOG_FMT_FUNCTION(RCUTILS_LOG_SEVERITY_FATAL, logger, function, __VA_ARGS__)
1405 #define RCLCPP_FATAL_FMT_SKIPFIRST(logger, ...) \
1406 RCLCPP_LOG_FMT_SKIPFIRST(RCUTILS_LOG_SEVERITY_FATAL, logger, __VA_ARGS__)
1412 #define RCLCPP_FATAL_FMT_THROTTLE(logger, clock, duration, ...) \
1413 RCLCPP_LOG_FMT_THROTTLE(RCUTILS_LOG_SEVERITY_FATAL, logger, clock, duration, __VA_ARGS__)
1419 #define RCLCPP_FATAL_FMT_SKIPFIRST_THROTTLE(logger, clock, duration, ...) \
1420 RCLCPP_LOG_FMT_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_FATAL, logger, clock, duration, \