mirror of
https://github.com/gabime/spdlog.git
synced 2024-11-15 16:35:45 +08:00
Fixed issue #797
This commit is contained in:
parent
4a871b9792
commit
b962fbb15c
@ -100,6 +100,7 @@ inline const char *to_short_c_str(spdlog::level::level_enum l)
|
|||||||
{
|
{
|
||||||
return short_level_names[l];
|
return short_level_names[l];
|
||||||
}
|
}
|
||||||
|
|
||||||
inline spdlog::level::level_enum from_str(const std::string &name)
|
inline spdlog::level::level_enum from_str(const std::string &name)
|
||||||
{
|
{
|
||||||
static std::unordered_map<std::string, level_enum> name_to_level = // map string->level
|
static std::unordered_map<std::string, level_enum> name_to_level = // map string->level
|
||||||
@ -131,35 +132,28 @@ enum class pattern_time_type
|
|||||||
//
|
//
|
||||||
// Log exception
|
// Log exception
|
||||||
//
|
//
|
||||||
class spdlog_ex : public std::runtime_error
|
class spdlog_ex : public std::exception
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit spdlog_ex(const std::string &msg)
|
explicit spdlog_ex(const std::string &msg)
|
||||||
: runtime_error(msg)
|
: msg_(msg)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
spdlog_ex(const std::string &msg, int last_errno)
|
spdlog_ex(const std::string &msg, int last_errno)
|
||||||
: runtime_error(msg)
|
|
||||||
, last_errno_(last_errno)
|
|
||||||
{
|
{
|
||||||
|
fmt::memory_buffer outbuf;
|
||||||
|
fmt::format_system_error(outbuf, last_errno, msg);
|
||||||
|
msg_ = fmt::to_string(outbuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *what() const SPDLOG_NOEXCEPT override
|
const char *what() const SPDLOG_NOEXCEPT override
|
||||||
{
|
{
|
||||||
if (last_errno_)
|
return msg_.c_str();
|
||||||
{
|
|
||||||
fmt::memory_buffer buf;
|
|
||||||
std::string msg(runtime_error::what());
|
|
||||||
fmt::format_system_error(buf, last_errno_, msg);
|
|
||||||
return fmt::to_string(buf).c_str();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return runtime_error::what();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int last_errno_{0};
|
std::string msg_;
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
|
Loading…
Reference in New Issue
Block a user