選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

42 行
2.0 KiB

  1. #pragma once
  2. #include <cpputils/logging/types.h>
  3. #include <cpputils/logging/logger.h>
  4. // () mandatory
  5. // [] optional
  6. // (LogLevel: debug|info|warn|error), [T_sender], [Message, [Arguments]]
  7. #define log_global_message(level, ...) \
  8. if (::utl::logging::is_enabled(::utl::logging::log_level::level)) \
  9. ::utl::logging::make_log_helper(::utl::logging::log_level::level, __FILE__, __LINE__, ## __VA_ARGS__ ) = ::utl::logging::message()
  10. namespace utl {
  11. namespace logging {
  12. inline bool is_enabled(log_level level)
  13. { return get_logger().is_enabled(level); }
  14. template <class T_sender>
  15. inline logger::helper make_log_helper(log_level level, const char* file, int line, T_sender* sender, std::string message)
  16. { return get_logger().make_log_helper<T_sender>(level, file, line, sender, message); }
  17. template <class T_sender>
  18. inline logger::helper make_log_helper(log_level level, const char* file, int line, T_sender* sender)
  19. { return get_logger().make_log_helper<T_sender>(level, file, line, sender, std::string()); }
  20. inline logger::helper make_log_helper(log_level level, const char* file, int line, std::string message)
  21. { return get_logger().make_log_helper<void>(level, file, line, nullptr, message); }
  22. inline logger::helper make_log_helper(log_level level, const char* file, int line)
  23. { return get_logger().make_log_helper<void>(level, file, line, nullptr, std::string()); }
  24. template <class T_sender, class... Args>
  25. inline logger::helper make_log_helper(log_level level, const char* file, int line, T_sender* sender, std::string message, Args... args)
  26. { return get_logger().make_log_helper<T_sender, Args...>(level, file, line, sender, message, args...); }
  27. template <class... Args>
  28. inline logger::helper make_log_helper(log_level level, const char* file, int line, std::string message, Args... args)
  29. { return get_logger().make_log_helper<void, Args...>(level, file, line, nullptr, message, args...); }
  30. }
  31. }