mirror of
https://github.com/gabime/spdlog.git
synced 2024-12-25 18:11:33 +08:00
Merge pull request #533 from manuel-schiller/patch-1
rethrow unwind exception
This commit is contained in:
commit
fbb8244f7d
@ -42,6 +42,12 @@
|
||||
#define SPDLOG_DEPRECATED
|
||||
#endif
|
||||
|
||||
#ifdef __linux__
|
||||
#include <cxxabi.h>
|
||||
#define SPDLOG_CATCH_ALL catch (abi::__forced_unwind&) { _err_handler("Unknown exception"); throw; } catch (...)
|
||||
#else // __linux__
|
||||
#define SPDLOG_CATCH_ALL catch (...)
|
||||
#endif // __linux__
|
||||
|
||||
#include "spdlog/fmt/fmt.h"
|
||||
|
||||
|
@ -11,7 +11,6 @@
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
|
||||
// create logger with given name, sinks and the default pattern formatter
|
||||
// all other ctors will call this one
|
||||
template<class It>
|
||||
@ -78,7 +77,7 @@ inline void spdlog::logger::log(level::level_enum lvl, const char* fmt, const Ar
|
||||
{
|
||||
_err_handler(ex.what());
|
||||
}
|
||||
catch (...)
|
||||
SPDLOG_CATCH_ALL
|
||||
{
|
||||
_err_handler("Unknown exception");
|
||||
}
|
||||
@ -98,7 +97,7 @@ inline void spdlog::logger::log(level::level_enum lvl, const char* msg)
|
||||
{
|
||||
_err_handler(ex.what());
|
||||
}
|
||||
catch (...)
|
||||
SPDLOG_CATCH_ALL
|
||||
{
|
||||
_err_handler("Unknown exception");
|
||||
}
|
||||
@ -119,7 +118,7 @@ inline void spdlog::logger::log(level::level_enum lvl, const T& msg)
|
||||
{
|
||||
_err_handler(ex.what());
|
||||
}
|
||||
catch (...)
|
||||
SPDLOG_CATCH_ALL
|
||||
{
|
||||
_err_handler("Unknown exception");
|
||||
}
|
||||
@ -571,3 +570,5 @@ inline const std::vector<spdlog::sink_ptr>& spdlog::logger::sinks() const
|
||||
{
|
||||
return _sinks;
|
||||
}
|
||||
|
||||
#undef SPDLOG_CATCH_ALL
|
||||
|
Loading…
Reference in New Issue
Block a user