Merge pull request #2048 from D-r-P-3-p-p-3-r/feature/2046_improved_error_handler_message

Added additional information for error handler
This commit is contained in:
Gabi Melman 2021-08-17 19:20:52 +03:00 committed by GitHub
commit deb178a0b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 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); sink->log(msg);
} }
SPDLOG_LOGGER_CATCH() SPDLOG_LOGGER_CATCH(msg.source)
} }
} }
@ -80,7 +80,7 @@ SPDLOG_INLINE void spdlog::async_logger::backend_flush_()
{ {
sink->flush(); sink->flush();
} }
SPDLOG_LOGGER_CATCH() SPDLOG_LOGGER_CATCH(source_loc())
} }
} }

View File

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

View File

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