20 #include <rmm/detail/export.hpp>
21 #include <rmm/detail/format.hpp>
23 #include <spdlog/sinks/basic_file_sink.h>
24 #include <spdlog/spdlog.h>
28 namespace RMM_NAMESPACE {
40 inline std::string default_log_filename()
42 auto* filename = std::getenv(
"RMM_DEBUG_LOG_FILE");
43 return (filename ==
nullptr) ? std::string{
"rmm_log.txt"} : std::string{filename};
54 std::make_shared<spdlog::sinks::basic_file_sink_mt>(
55 default_log_filename(), true
58 logger_.set_pattern(
"[%6t][%H:%M:%S:%f][%-6l] %v");
59 logger_.flush_on(spdlog::level::warn);
60 #if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_INFO
61 #ifdef CUDA_API_PER_THREAD_DEFAULT_STREAM
62 logger_.info(
"----- RMM LOG BEGIN [PTDS ENABLED] -----");
64 logger_.info(
"----- RMM LOG BEGIN [PTDS DISABLED] -----");
88 "Support for direct access to spdlog loggers in rmm is planned for "
100 #define RMM_LOG_TRACE(...) \
101 SPDLOG_LOGGER_TRACE(&rmm::detail::logger(), rmm::detail::formatted_log(__VA_ARGS__))
102 #define RMM_LOG_DEBUG(...) \
103 SPDLOG_LOGGER_DEBUG(&rmm::detail::logger(), rmm::detail::formatted_log(__VA_ARGS__))
104 #define RMM_LOG_INFO(...) \
105 SPDLOG_LOGGER_INFO(&rmm::detail::logger(), rmm::detail::formatted_log(__VA_ARGS__))
106 #define RMM_LOG_WARN(...) \
107 SPDLOG_LOGGER_WARN(&rmm::detail::logger(), rmm::detail::formatted_log(__VA_ARGS__))
108 #define RMM_LOG_ERROR(...) \
109 SPDLOG_LOGGER_ERROR(&rmm::detail::logger(), rmm::detail::formatted_log(__VA_ARGS__))
110 #define RMM_LOG_CRITICAL(...) \
111 SPDLOG_LOGGER_CRITICAL(&rmm::detail::logger(), rmm::detail::formatted_log(__VA_ARGS__))
spdlog::logger & logger()
Returns the global RMM logger.
Definition: logger.hpp:90
Simple wrapper around a spdlog::logger that performs RMM-specific initialization.
Definition: logger.hpp:49
spdlog::logger logger_
The underlying logger.
Definition: logger.hpp:50