Added additional information for error handler

Useful when formatting log messages fails. Now you can tell which log message caused the problem.
This commit is contained in:
Wolfgang Petroschka 2021-08-13 12:11:59 +02:00
parent c2550ac24a
commit 119467c580
3 changed files with 10 additions and 10 deletions

View File

@ -62,7 +62,7 @@ SPDLOG_INLINE void spdlog::async_logger::backend_sink_it_(const details::log_msg
{
sink->log(msg);
}
SPDLOG_LOGGER_CATCH()
SPDLOG_LOGGER_CATCH(msg.payload)
}
}
@ -80,7 +80,7 @@ SPDLOG_INLINE void spdlog::async_logger::backend_flush_()
{
sink->flush();
}
SPDLOG_LOGGER_CATCH()
SPDLOG_LOGGER_CATCH("")
}
}

View File

@ -185,7 +185,7 @@ SPDLOG_INLINE void logger::sink_it_(const details::log_msg &msg)
{
sink->log(msg);
}
SPDLOG_LOGGER_CATCH()
SPDLOG_LOGGER_CATCH(msg.payload)
}
}
@ -203,7 +203,7 @@ SPDLOG_INLINE void logger::flush_()
{
sink->flush();
}
SPDLOG_LOGGER_CATCH()
SPDLOG_LOGGER_CATCH("")
}
}

View File

@ -28,10 +28,10 @@
#include <vector>
#ifndef SPDLOG_NO_EXCEPTIONS
# define SPDLOG_LOGGER_CATCH() \
# define SPDLOG_LOGGER_CATCH(additional_info) \
catch (const std::exception &ex) \
{ \
err_handler_(ex.what()); \
err_handler_(fmt::format("{} ({})", ex.what(), additional_info)); \
} \
catch (...) \
{ \
@ -39,7 +39,7 @@
throw; \
}
#else
# define SPDLOG_LOGGER_CATCH()
# define SPDLOG_LOGGER_CATCH(additional_info)
#endif
namespace spdlog {
@ -333,7 +333,7 @@ protected:
details::log_msg log_msg(loc, name_, lvl, string_view_t(buf.data(), buf.size()));
log_it_(log_msg, log_enabled, traceback_enabled);
}
SPDLOG_LOGGER_CATCH()
SPDLOG_LOGGER_CATCH(fmt)
}
#ifdef SPDLOG_WCHAR_TO_UTF8_SUPPORT
@ -356,7 +356,7 @@ protected:
details::log_msg log_msg(loc, name_, lvl, string_view_t(buf.data(), buf.size()));
log_it_(log_msg, log_enabled, traceback_enabled);
}
SPDLOG_LOGGER_CATCH()
SPDLOG_LOGGER_CATCH(fmt)
}
// T can be statically converted to wstring_view, and no formatting needed.
@ -376,7 +376,7 @@ protected:
details::log_msg log_msg(loc, name_, lvl, string_view_t(buf.data(), buf.size()));
log_it_(log_msg, log_enabled, traceback_enabled);
}
SPDLOG_LOGGER_CATCH()
SPDLOG_LOGGER_CATCH(msg)
}
#endif // SPDLOG_WCHAR_TO_UTF8_SUPPORT