15 #ifndef RCLCPP__LOGGING_HPP_
16 #define RCLCPP__LOGGING_HPP_
19 #include <type_traits>
21 #include "rclcpp/logger.hpp"
22 #include "rcutils/logging_macros.h"
25 #define RCLCPP_LOG_MIN_SEVERITY_DEBUG 0
26 #define RCLCPP_LOG_MIN_SEVERITY_INFO 1
27 #define RCLCPP_LOG_MIN_SEVERITY_WARN 2
28 #define RCLCPP_LOG_MIN_SEVERITY_ERROR 3
29 #define RCLCPP_LOG_MIN_SEVERITY_FATAL 4
30 #define RCLCPP_LOG_MIN_SEVERITY_NONE 5
32 #define RCLCPP_STATIC_ASSERT_LOGGER(logger) \
35 ::std::is_same<typename std::remove_cv_t< \
36 typename std::remove_reference_t<decltype(logger)>>, \
37 typename ::rclcpp::Logger>::value, \
38 "First argument to logging macros must be an rclcpp::Logger"); \
47 #define RCLCPP_LOG(severity, logger, ...) \
49 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
50 RCUTILS_LOG_NAMED(severity, (logger).get_name(), __VA_ARGS__); \
61 #define RCLCPP_LOG_ONCE(severity, logger, ...) \
63 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
64 RCUTILS_LOG_ONCE_NAMED(severity, (logger).get_name(), __VA_ARGS__); \
76 #define RCLCPP_LOG_EXPRESSION(severity, logger, expression, ...) \
78 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
79 RCUTILS_LOG_EXPRESSION_NAMED(severity, expression, (logger).get_name(), __VA_ARGS__); \
91 #define RCLCPP_LOG_FUNCTION(severity, logger, function, ...) \
93 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
94 RCUTILS_LOG_FUNCTION_NAMED(severity, function, (logger).get_name(), __VA_ARGS__); \
105 #define RCLCPP_LOG_SKIPFIRST(severity, logger, ...) \
107 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
108 RCUTILS_LOG_SKIPFIRST_NAMED(severity, (logger).get_name(), __VA_ARGS__); \
111 #define RCLCPP_LOG_TIME_POINT_FUNC(clock) \
112 [&c = clock](rcutils_time_point_value_t * time_point)->rcutils_ret_t { \
114 *time_point = c.now().nanoseconds(); \
116 RCUTILS_SAFE_FWRITE_TO_STDERR( \
117 "[rclcpp|logging.hpp] RCLCPP_DEBUG_THROTTLE could not get current time stamp\n"); \
118 return RCUTILS_RET_ERROR; \
120 return RCUTILS_RET_OK; \
133 #define RCLCPP_LOG_THROTTLE(severity, logger, clock, duration, ...) \
135 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
136 RCUTILS_LOG_THROTTLE_NAMED( \
138 RCLCPP_LOG_TIME_POINT_FUNC(clock), \
140 (logger).get_name(), \
155 #define RCLCPP_LOG_SKIPFIRST_THROTTLE(severity, logger, clock, duration, ...) \
157 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
158 RCUTILS_LOG_SKIPFIRST_THROTTLE_NAMED( \
160 RCLCPP_LOG_TIME_POINT_FUNC(clock), \
162 (logger).get_name(), \
173 #define RCLCPP_LOG_STREAM(severity, logger, stream_arg) \
175 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
176 std::stringstream rclcpp_stream_ss_; \
177 rclcpp_stream_ss_ << stream_arg; \
178 RCUTILS_LOG_NAMED(severity, (logger).get_name(), "%s", rclcpp_stream_ss_.str().c_str()); \
189 #define RCLCPP_LOG_STREAM_ONCE(severity, logger, stream_arg) \
191 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
192 std::stringstream rclcpp_stream_ss_; \
193 rclcpp_stream_ss_ << stream_arg; \
194 RCUTILS_LOG_ONCE_NAMED(severity, (logger).get_name(), "%s", rclcpp_stream_ss_.str().c_str()); \
206 #define RCLCPP_LOG_STREAM_EXPRESSION(severity, logger, expression, stream_arg) \
208 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
209 std::stringstream rclcpp_stream_ss_; \
210 rclcpp_stream_ss_ << stream_arg; \
211 RCUTILS_LOG_EXPRESSION_NAMED( \
214 (logger).get_name(), \
215 "%s", rclcpp_stream_ss_.str().c_str()); \
227 #define RCLCPP_LOG_STREAM_FUNCTION(severity, logger, function, stream_arg) \
229 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
230 std::stringstream rclcpp_stream_ss_; \
231 rclcpp_stream_ss_ << stream_arg; \
232 RCUTILS_LOG_FUNCTION_NAMED( \
235 (logger).get_name(), \
236 "%s", rclcpp_stream_ss_.str().c_str()); \
247 #define RCLCPP_LOG_STREAM_SKIPFIRST(severity, logger, stream_arg) \
249 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
250 std::stringstream rclcpp_stream_ss_; \
251 rclcpp_stream_ss_ << stream_arg; \
252 RCUTILS_LOG_SKIPFIRST_NAMED( \
254 (logger).get_name(), \
255 "%s", rclcpp_stream_ss_.str().c_str()); \
268 #define RCLCPP_LOG_STREAM_THROTTLE(severity, logger, clock, duration, stream_arg) \
270 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
271 std::stringstream rclcpp_stream_ss_; \
272 rclcpp_stream_ss_ << stream_arg; \
273 RCUTILS_LOG_THROTTLE_NAMED( \
275 RCLCPP_LOG_TIME_POINT_FUNC(clock), \
277 (logger).get_name(), \
278 "%s", rclcpp_stream_ss_.str().c_str()); \
292 #define RCLCPP_LOG_STREAM_SKIPFIRST_THROTTLE(severity, logger, clock, duration, stream_arg) \
294 RCLCPP_STATIC_ASSERT_LOGGER(logger); \
295 std::stringstream rclcpp_stream_ss_; \
296 rclcpp_stream_ss_ << stream_arg; \
297 RCUTILS_LOG_SKIPFIRST_THROTTLE_NAMED( \
299 RCLCPP_LOG_TIME_POINT_FUNC(clock), \
301 (logger).get_name(), \
302 "%s", rclcpp_stream_ss_.str().c_str()); \
311 #ifndef RCLCPP_LOG_MIN_SEVERITY
312 #define RCLCPP_LOG_MIN_SEVERITY RCLCPP_LOG_MIN_SEVERITY_DEBUG
317 #if (RCLCPP_LOG_MIN_SEVERITY > RCLCPP_LOG_MIN_SEVERITY_DEBUG)
320 #define RCLCPP_DEBUG(...)
322 #define RCLCPP_DEBUG_ONCE(...)
324 #define RCLCPP_DEBUG_EXPRESSION(...)
326 #define RCLCPP_DEBUG_FUNCTION(...)
328 #define RCLCPP_DEBUG_SKIPFIRST(...)
330 #define RCLCPP_DEBUG_THROTTLE(...)
332 #define RCLCPP_DEBUG_SKIPFIRST_THROTTLE(...)
334 #define RCLCPP_DEBUG_STREAM(...)
336 #define RCLCPP_DEBUG_STREAM_ONCE(...)
338 #define RCLCPP_DEBUG_STREAM_EXPRESSION(...)
340 #define RCLCPP_DEBUG_STREAM_FUNCTION(...)
342 #define RCLCPP_DEBUG_STREAM_SKIPFIRST(...)
344 #define RCLCPP_DEBUG_STREAM_THROTTLE(...)
346 #define RCLCPP_DEBUG_STREAM_SKIPFIRST_THROTTLE(...)
353 #define RCLCPP_DEBUG(logger, ...) RCLCPP_LOG(RCUTILS_LOG_SEVERITY_DEBUG, logger, __VA_ARGS__)
359 #define RCLCPP_DEBUG_ONCE(logger, ...) \
360 RCLCPP_LOG_ONCE(RCUTILS_LOG_SEVERITY_DEBUG, logger, __VA_ARGS__)
366 #define RCLCPP_DEBUG_EXPRESSION(logger, expression, ...) \
367 RCLCPP_LOG_EXPRESSION(RCUTILS_LOG_SEVERITY_DEBUG, logger, expression, __VA_ARGS__)
373 #define RCLCPP_DEBUG_FUNCTION(logger, function, ...) \
374 RCLCPP_LOG_FUNCTION(RCUTILS_LOG_SEVERITY_DEBUG, logger, function, __VA_ARGS__)
380 #define RCLCPP_DEBUG_SKIPFIRST(logger, ...) \
381 RCLCPP_LOG_SKIPFIRST(RCUTILS_LOG_SEVERITY_DEBUG, logger, __VA_ARGS__)
387 #define RCLCPP_DEBUG_THROTTLE(logger, clock, duration, ...) \
388 RCLCPP_LOG_THROTTLE(RCUTILS_LOG_SEVERITY_DEBUG, logger, clock, duration, __VA_ARGS__)
394 #define RCLCPP_DEBUG_SKIPFIRST_THROTTLE(logger, clock, duration, ...) \
395 RCLCPP_LOG_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_DEBUG, logger, clock, duration, __VA_ARGS__)
401 #define RCLCPP_DEBUG_STREAM(logger, stream_arg) \
402 RCLCPP_LOG_STREAM(RCUTILS_LOG_SEVERITY_DEBUG, logger, stream_arg)
408 #define RCLCPP_DEBUG_STREAM_ONCE(logger, stream_arg) \
409 RCLCPP_LOG_STREAM_ONCE(RCUTILS_LOG_SEVERITY_DEBUG, logger, stream_arg)
415 #define RCLCPP_DEBUG_STREAM_EXPRESSION(logger, expression, stream_arg) \
416 RCLCPP_LOG_STREAM_EXPRESSION(RCUTILS_LOG_SEVERITY_DEBUG, logger, expression, stream_arg)
422 #define RCLCPP_DEBUG_STREAM_FUNCTION(logger, function, stream_arg) \
423 RCLCPP_LOG_STREAM_FUNCTION(RCUTILS_LOG_SEVERITY_DEBUG, logger, function, stream_args)
429 #define RCLCPP_DEBUG_STREAM_SKIPFIRST(logger, stream_arg) \
430 RCLCPP_LOG_STREAM_SKIPFIRST(RCUTILS_LOG_SEVERITY_DEBUG, logger, stream_arg)
436 #define RCLCPP_DEBUG_STREAM_THROTTLE(logger, clock, duration, stream_arg) \
437 RCLCPP_LOG_STREAM_THROTTLE(RCUTILS_LOG_SEVERITY_DEBUG, logger, clock, duration, stream_arg)
443 #define RCLCPP_DEBUG_STREAM_SKIPFIRST_THROTTLE(logger, clock, duration, stream_arg) \
444 RCLCPP_LOG_STREAM_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_DEBUG, logger, clock, duration, \
451 #if (RCLCPP_LOG_MIN_SEVERITY > RCLCPP_LOG_MIN_SEVERITY_INFO)
454 #define RCLCPP_INFO(...)
456 #define RCLCPP_INFO_ONCE(...)
458 #define RCLCPP_INFO_EXPRESSION(...)
460 #define RCLCPP_INFO_FUNCTION(...)
462 #define RCLCPP_INFO_SKIPFIRST(...)
464 #define RCLCPP_INFO_THROTTLE(...)
466 #define RCLCPP_INFO_SKIPFIRST_THROTTLE(...)
468 #define RCLCPP_INFO_STREAM(...)
470 #define RCLCPP_INFO_STREAM_ONCE(...)
472 #define RCLCPP_INFO_STREAM_EXPRESSION(...)
474 #define RCLCPP_INFO_STREAM_FUNCTION(...)
476 #define RCLCPP_INFO_STREAM_SKIPFIRST(...)
478 #define RCLCPP_INFO_STREAM_THROTTLE(...)
480 #define RCLCPP_INFO_STREAM_SKIPFIRST_THROTTLE(...)
487 #define RCLCPP_INFO(logger, ...) RCLCPP_LOG(RCUTILS_LOG_SEVERITY_INFO, logger, __VA_ARGS__)
493 #define RCLCPP_INFO_ONCE(logger, ...) \
494 RCLCPP_LOG_ONCE(RCUTILS_LOG_SEVERITY_INFO, logger, __VA_ARGS__)
500 #define RCLCPP_INFO_EXPRESSION(logger, expression, ...) \
501 RCLCPP_LOG_EXPRESSION(RCUTILS_LOG_SEVERITY_INFO, logger, expression, __VA_ARGS__)
507 #define RCLCPP_INFO_FUNCTION(logger, function, ...) \
508 RCLCPP_LOG_FUNCTION(RCUTILS_LOG_SEVERITY_INFO, logger, function, __VA_ARGS__)
514 #define RCLCPP_INFO_SKIPFIRST(logger, ...) \
515 RCLCPP_LOG_SKIPFIRST(RCUTILS_LOG_SEVERITY_INFO, logger, __VA_ARGS__)
521 #define RCLCPP_INFO_THROTTLE(logger, clock, duration, ...) \
522 RCLCPP_LOG_THROTTLE(RCUTILS_LOG_SEVERITY_INFO, logger, clock, duration, __VA_ARGS__)
528 #define RCLCPP_INFO_SKIPFIRST_THROTTLE(logger, clock, duration, ...) \
529 RCLCPP_LOG_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_INFO, logger, clock, duration, __VA_ARGS__)
535 #define RCLCPP_INFO_STREAM(logger, stream_arg) \
536 RCLCPP_LOG_STREAM(RCUTILS_LOG_SEVERITY_INFO, logger, stream_arg)
542 #define RCLCPP_INFO_STREAM_ONCE(logger, stream_arg) \
543 RCLCPP_LOG_STREAM_ONCE(RCUTILS_LOG_SEVERITY_INFO, logger, stream_arg)
549 #define RCLCPP_INFO_STREAM_EXPRESSION(logger, expression, stream_arg) \
550 RCLCPP_LOG_STREAM_EXPRESSION(RCUTILS_LOG_SEVERITY_INFO, logger, expression, stream_arg)
556 #define RCLCPP_INFO_STREAM_FUNCTION(logger, function, stream_arg) \
557 RCLCPP_LOG_STREAM_FUNCTION(RCUTILS_LOG_SEVERITY_INFO, logger, function, stream_args)
563 #define RCLCPP_INFO_STREAM_SKIPFIRST(logger, stream_arg) \
564 RCLCPP_LOG_STREAM_SKIPFIRST(RCUTILS_LOG_SEVERITY_INFO, logger, stream_arg)
570 #define RCLCPP_INFO_STREAM_THROTTLE(logger, clock, duration, stream_arg) \
571 RCLCPP_LOG_STREAM_THROTTLE(RCUTILS_LOG_SEVERITY_INFO, logger, clock, duration, stream_arg)
577 #define RCLCPP_INFO_STREAM_SKIPFIRST_THROTTLE(logger, clock, duration, stream_arg) \
578 RCLCPP_LOG_STREAM_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_INFO, logger, clock, duration, \
585 #if (RCLCPP_LOG_MIN_SEVERITY > RCLCPP_LOG_MIN_SEVERITY_WARN)
588 #define RCLCPP_WARN(...)
590 #define RCLCPP_WARN_ONCE(...)
592 #define RCLCPP_WARN_EXPRESSION(...)
594 #define RCLCPP_WARN_FUNCTION(...)
596 #define RCLCPP_WARN_SKIPFIRST(...)
598 #define RCLCPP_WARN_THROTTLE(...)
600 #define RCLCPP_WARN_SKIPFIRST_THROTTLE(...)
602 #define RCLCPP_WARN_STREAM(...)
604 #define RCLCPP_WARN_STREAM_ONCE(...)
606 #define RCLCPP_WARN_STREAM_EXPRESSION(...)
608 #define RCLCPP_WARN_STREAM_FUNCTION(...)
610 #define RCLCPP_WARN_STREAM_SKIPFIRST(...)
612 #define RCLCPP_WARN_STREAM_THROTTLE(...)
614 #define RCLCPP_WARN_STREAM_SKIPFIRST_THROTTLE(...)
621 #define RCLCPP_WARN(logger, ...) RCLCPP_LOG(RCUTILS_LOG_SEVERITY_WARN, logger, __VA_ARGS__)
627 #define RCLCPP_WARN_ONCE(logger, ...) \
628 RCLCPP_LOG_ONCE(RCUTILS_LOG_SEVERITY_WARN, logger, __VA_ARGS__)
634 #define RCLCPP_WARN_EXPRESSION(logger, expression, ...) \
635 RCLCPP_LOG_EXPRESSION(RCUTILS_LOG_SEVERITY_WARN, logger, expression, __VA_ARGS__)
641 #define RCLCPP_WARN_FUNCTION(logger, function, ...) \
642 RCLCPP_LOG_FUNCTION(RCUTILS_LOG_SEVERITY_WARN, logger, function, __VA_ARGS__)
648 #define RCLCPP_WARN_SKIPFIRST(logger, ...) \
649 RCLCPP_LOG_SKIPFIRST(RCUTILS_LOG_SEVERITY_WARN, logger, __VA_ARGS__)
655 #define RCLCPP_WARN_THROTTLE(logger, clock, duration, ...) \
656 RCLCPP_LOG_THROTTLE(RCUTILS_LOG_SEVERITY_WARN, logger, clock, duration, __VA_ARGS__)
662 #define RCLCPP_WARN_SKIPFIRST_THROTTLE(logger, clock, duration, ...) \
663 RCLCPP_LOG_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_WARN, logger, clock, duration, __VA_ARGS__)
669 #define RCLCPP_WARN_STREAM(logger, stream_arg) \
670 RCLCPP_LOG_STREAM(RCUTILS_LOG_SEVERITY_WARN, logger, stream_arg)
676 #define RCLCPP_WARN_STREAM_ONCE(logger, stream_arg) \
677 RCLCPP_LOG_STREAM_ONCE(RCUTILS_LOG_SEVERITY_WARN, logger, stream_arg)
683 #define RCLCPP_WARN_STREAM_EXPRESSION(logger, expression, stream_arg) \
684 RCLCPP_LOG_STREAM_EXPRESSION(RCUTILS_LOG_SEVERITY_WARN, logger, expression, stream_arg)
690 #define RCLCPP_WARN_STREAM_FUNCTION(logger, function, stream_arg) \
691 RCLCPP_LOG_STREAM_FUNCTION(RCUTILS_LOG_SEVERITY_WARN, logger, function, stream_args)
697 #define RCLCPP_WARN_STREAM_SKIPFIRST(logger, stream_arg) \
698 RCLCPP_LOG_STREAM_SKIPFIRST(RCUTILS_LOG_SEVERITY_WARN, logger, stream_arg)
704 #define RCLCPP_WARN_STREAM_THROTTLE(logger, clock, duration, stream_arg) \
705 RCLCPP_LOG_STREAM_THROTTLE(RCUTILS_LOG_SEVERITY_WARN, logger, clock, duration, stream_arg)
711 #define RCLCPP_WARN_STREAM_SKIPFIRST_THROTTLE(logger, clock, duration, stream_arg) \
712 RCLCPP_LOG_STREAM_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_WARN, logger, clock, duration, \
719 #if (RCLCPP_LOG_MIN_SEVERITY > RCLCPP_LOG_MIN_SEVERITY_ERROR)
722 #define RCLCPP_ERROR(...)
724 #define RCLCPP_ERROR_ONCE(...)
726 #define RCLCPP_ERROR_EXPRESSION(...)
728 #define RCLCPP_ERROR_FUNCTION(...)
730 #define RCLCPP_ERROR_SKIPFIRST(...)
732 #define RCLCPP_ERROR_THROTTLE(...)
734 #define RCLCPP_ERROR_SKIPFIRST_THROTTLE(...)
736 #define RCLCPP_ERROR_STREAM(...)
738 #define RCLCPP_ERROR_STREAM_ONCE(...)
740 #define RCLCPP_ERROR_STREAM_EXPRESSION(...)
742 #define RCLCPP_ERROR_STREAM_FUNCTION(...)
744 #define RCLCPP_ERROR_STREAM_SKIPFIRST(...)
746 #define RCLCPP_ERROR_STREAM_THROTTLE(...)
748 #define RCLCPP_ERROR_STREAM_SKIPFIRST_THROTTLE(...)
755 #define RCLCPP_ERROR(logger, ...) RCLCPP_LOG(RCUTILS_LOG_SEVERITY_ERROR, logger, __VA_ARGS__)
761 #define RCLCPP_ERROR_ONCE(logger, ...) \
762 RCLCPP_LOG_ONCE(RCUTILS_LOG_SEVERITY_ERROR, logger, __VA_ARGS__)
768 #define RCLCPP_ERROR_EXPRESSION(logger, expression, ...) \
769 RCLCPP_LOG_EXPRESSION(RCUTILS_LOG_SEVERITY_ERROR, logger, expression, __VA_ARGS__)
775 #define RCLCPP_ERROR_FUNCTION(logger, function, ...) \
776 RCLCPP_LOG_FUNCTION(RCUTILS_LOG_SEVERITY_ERROR, logger, function, __VA_ARGS__)
782 #define RCLCPP_ERROR_SKIPFIRST(logger, ...) \
783 RCLCPP_LOG_SKIPFIRST(RCUTILS_LOG_SEVERITY_ERROR, logger, __VA_ARGS__)
789 #define RCLCPP_ERROR_THROTTLE(logger, clock, duration, ...) \
790 RCLCPP_LOG_THROTTLE(RCUTILS_LOG_SEVERITY_ERROR, logger, clock, duration, __VA_ARGS__)
796 #define RCLCPP_ERROR_SKIPFIRST_THROTTLE(logger, clock, duration, ...) \
797 RCLCPP_LOG_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_ERROR, logger, clock, duration, __VA_ARGS__)
803 #define RCLCPP_ERROR_STREAM(logger, stream_arg) \
804 RCLCPP_LOG_STREAM(RCUTILS_LOG_SEVERITY_ERROR, logger, stream_arg)
810 #define RCLCPP_ERROR_STREAM_ONCE(logger, stream_arg) \
811 RCLCPP_LOG_STREAM_ONCE(RCUTILS_LOG_SEVERITY_ERROR, logger, stream_arg)
817 #define RCLCPP_ERROR_STREAM_EXPRESSION(logger, expression, stream_arg) \
818 RCLCPP_LOG_STREAM_EXPRESSION(RCUTILS_LOG_SEVERITY_ERROR, logger, expression, stream_arg)
824 #define RCLCPP_ERROR_STREAM_FUNCTION(logger, function, stream_arg) \
825 RCLCPP_LOG_STREAM_FUNCTION(RCUTILS_LOG_SEVERITY_ERROR, logger, function, stream_args)
831 #define RCLCPP_ERROR_STREAM_SKIPFIRST(logger, stream_arg) \
832 RCLCPP_LOG_STREAM_SKIPFIRST(RCUTILS_LOG_SEVERITY_ERROR, logger, stream_arg)
838 #define RCLCPP_ERROR_STREAM_THROTTLE(logger, clock, duration, stream_arg) \
839 RCLCPP_LOG_STREAM_THROTTLE(RCUTILS_LOG_SEVERITY_ERROR, logger, clock, duration, stream_arg)
845 #define RCLCPP_ERROR_STREAM_SKIPFIRST_THROTTLE(logger, clock, duration, stream_arg) \
846 RCLCPP_LOG_STREAM_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_ERROR, logger, clock, duration, \
853 #if (RCLCPP_LOG_MIN_SEVERITY > RCLCPP_LOG_MIN_SEVERITY_FATAL)
856 #define RCLCPP_FATAL(...)
858 #define RCLCPP_FATAL_ONCE(...)
860 #define RCLCPP_FATAL_EXPRESSION(...)
862 #define RCLCPP_FATAL_FUNCTION(...)
864 #define RCLCPP_FATAL_SKIPFIRST(...)
866 #define RCLCPP_FATAL_THROTTLE(...)
868 #define RCLCPP_FATAL_SKIPFIRST_THROTTLE(...)
870 #define RCLCPP_FATAL_STREAM(...)
872 #define RCLCPP_FATAL_STREAM_ONCE(...)
874 #define RCLCPP_FATAL_STREAM_EXPRESSION(...)
876 #define RCLCPP_FATAL_STREAM_FUNCTION(...)
878 #define RCLCPP_FATAL_STREAM_SKIPFIRST(...)
880 #define RCLCPP_FATAL_STREAM_THROTTLE(...)
882 #define RCLCPP_FATAL_STREAM_SKIPFIRST_THROTTLE(...)
889 #define RCLCPP_FATAL(logger, ...) RCLCPP_LOG(RCUTILS_LOG_SEVERITY_FATAL, logger, __VA_ARGS__)
895 #define RCLCPP_FATAL_ONCE(logger, ...) \
896 RCLCPP_LOG_ONCE(RCUTILS_LOG_SEVERITY_FATAL, logger, __VA_ARGS__)
902 #define RCLCPP_FATAL_EXPRESSION(logger, expression, ...) \
903 RCLCPP_LOG_EXPRESSION(RCUTILS_LOG_SEVERITY_FATAL, logger, expression, __VA_ARGS__)
909 #define RCLCPP_FATAL_FUNCTION(logger, function, ...) \
910 RCLCPP_LOG_FUNCTION(RCUTILS_LOG_SEVERITY_FATAL, logger, function, __VA_ARGS__)
916 #define RCLCPP_FATAL_SKIPFIRST(logger, ...) \
917 RCLCPP_LOG_SKIPFIRST(RCUTILS_LOG_SEVERITY_FATAL, logger, __VA_ARGS__)
923 #define RCLCPP_FATAL_THROTTLE(logger, clock, duration, ...) \
924 RCLCPP_LOG_THROTTLE(RCUTILS_LOG_SEVERITY_FATAL, logger, clock, duration, __VA_ARGS__)
930 #define RCLCPP_FATAL_SKIPFIRST_THROTTLE(logger, clock, duration, ...) \
931 RCLCPP_LOG_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_FATAL, logger, clock, duration, __VA_ARGS__)
937 #define RCLCPP_FATAL_STREAM(logger, stream_arg) \
938 RCLCPP_LOG_STREAM(RCUTILS_LOG_SEVERITY_FATAL, logger, stream_arg)
944 #define RCLCPP_FATAL_STREAM_ONCE(logger, stream_arg) \
945 RCLCPP_LOG_STREAM_ONCE(RCUTILS_LOG_SEVERITY_FATAL, logger, stream_arg)
951 #define RCLCPP_FATAL_STREAM_EXPRESSION(logger, expression, stream_arg) \
952 RCLCPP_LOG_STREAM_EXPRESSION(RCUTILS_LOG_SEVERITY_FATAL, logger, expression, stream_arg)
958 #define RCLCPP_FATAL_STREAM_FUNCTION(logger, function, stream_arg) \
959 RCLCPP_LOG_STREAM_FUNCTION(RCUTILS_LOG_SEVERITY_FATAL, logger, function, stream_args)
965 #define RCLCPP_FATAL_STREAM_SKIPFIRST(logger, stream_arg) \
966 RCLCPP_LOG_STREAM_SKIPFIRST(RCUTILS_LOG_SEVERITY_FATAL, logger, stream_arg)
972 #define RCLCPP_FATAL_STREAM_THROTTLE(logger, clock, duration, stream_arg) \
973 RCLCPP_LOG_STREAM_THROTTLE(RCUTILS_LOG_SEVERITY_FATAL, logger, clock, duration, stream_arg)
979 #define RCLCPP_FATAL_STREAM_SKIPFIRST_THROTTLE(logger, clock, duration, stream_arg) \
980 RCLCPP_LOG_STREAM_SKIPFIRST_THROTTLE(RCUTILS_LOG_SEVERITY_FATAL, logger, clock, duration, \