wip - no-exceptions support

This commit is contained in:
gabime
2019-08-18 19:46:28 +03:00
parent db1babab5e
commit b0a25f0183
55 changed files with 56523 additions and 18 deletions

View File

@@ -33,7 +33,7 @@ SPDLOG_INLINE void spdlog::async_logger::sink_it_(details::log_msg &msg)
}
else
{
throw spdlog_ex("async log: thread pool doesn't exist anymore");
SPDLOG_THROW spdlog_ex("async log: thread pool doesn't exist anymore");
}
}
@@ -46,7 +46,7 @@ SPDLOG_INLINE void spdlog::async_logger::flush_()
}
else
{
throw spdlog_ex("async flush: thread pool doesn't exist anymore");
SPDLOG_THROW spdlog_ex("async flush: thread pool doesn't exist anymore");
}
}

View File

@@ -64,6 +64,12 @@
#define SPDLOG_FUNCTION __FUNCTION__
#endif
#ifdef SPDLOG_NO_EXCEPTIONS
#define SPDLOG_THROW
#else
#define SPDLOG_THROW throw
#endif
namespace spdlog {
class formatter;

View File

@@ -39,14 +39,14 @@ SPDLOG_INLINE void file_helper::open(const filename_t &fname, bool truncate)
details::os::sleep_for_millis(open_interval);
}
throw spdlog_ex("Failed opening file " + os::filename_to_str(_filename) + " for writing", errno);
SPDLOG_THROW spdlog_ex("Failed opening file " + os::filename_to_str(_filename) + " for writing", errno);
}
SPDLOG_INLINE void file_helper::reopen(bool truncate)
{
if (_filename.empty())
{
throw spdlog_ex("Failed re opening file - was not opened before");
SPDLOG_THROW spdlog_ex("Failed re opening file - was not opened before");
}
open(_filename, truncate);
}
@@ -71,7 +71,7 @@ SPDLOG_INLINE void file_helper::write(const fmt::memory_buffer &buf)
auto data = buf.data();
if (std::fwrite(data, 1, msg_size, fd_) != msg_size)
{
throw spdlog_ex("Failed writing to file " + os::filename_to_str(_filename), errno);
SPDLOG_THROW spdlog_ex("Failed writing to file " + os::filename_to_str(_filename), errno);
}
}
@@ -79,7 +79,7 @@ SPDLOG_INLINE size_t file_helper::size() const
{
if (fd_ == nullptr)
{
throw spdlog_ex("Cannot use size() on closed file " + os::filename_to_str(_filename));
SPDLOG_THROW spdlog_ex("Cannot use size() on closed file " + os::filename_to_str(_filename));
}
return os::filesize(fd_);
}

View File

@@ -120,13 +120,13 @@ SPDLOG_INLINE void prevent_child_fd(FILE *f)
#if !defined(__cplusplus_winrt)
auto file_handle = reinterpret_cast<HANDLE>(_get_osfhandle(_fileno(f)));
if (!::SetHandleInformation(file_handle, HANDLE_FLAG_INHERIT, 0))
throw spdlog_ex("SetHandleInformation failed", errno);
SPDLOG_THROW spdlog_ex("SetHandleInformation failed", errno);
#endif
#else
auto fd = fileno(f);
if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1)
{
throw spdlog_ex("fcntl with FD_CLOEXEC failed", errno);
SPDLOG_THROW spdlog_ex("fcntl with FD_CLOEXEC failed", errno);
}
#endif
}
@@ -192,7 +192,7 @@ SPDLOG_INLINE size_t filesize(FILE *f)
{
if (f == nullptr)
{
throw spdlog_ex("Failed getting file size. fd is null");
SPDLOG_THROW spdlog_ex("Failed getting file size. fd is null");
}
#if defined(_WIN32) && !defined(__CYGWIN__)
int fd = _fileno(f);
@@ -229,7 +229,7 @@ SPDLOG_INLINE size_t filesize(FILE *f)
}
#endif
#endif
throw spdlog_ex("Failed getting file size from fd", errno);
SPDLOG_THROW spdlog_ex("Failed getting file size from fd", errno);
}
// Return utc offset in minutes or throw spdlog_ex on failure

View File

@@ -245,7 +245,7 @@ SPDLOG_INLINE void registry::throw_if_exists_(const std::string &logger_name)
{
if (loggers_.find(logger_name) != loggers_.end())
{
throw spdlog_ex("logger with name '" + logger_name + "' already exists");
SPDLOG_THROW spdlog_ex("logger with name '" + logger_name + "' already exists");
}
}

View File

@@ -17,7 +17,7 @@ SPDLOG_INLINE thread_pool::thread_pool(size_t q_max_items, size_t threads_n, std
{
if (threads_n == 0 || threads_n > 1000)
{
throw spdlog_ex("spdlog::thread_pool(): invalid threads_n param (valid "
SPDLOG_THROW spdlog_ex("spdlog::thread_pool(): invalid threads_n param (valid "
"range is 1-1000)");
}
for (size_t i = 0; i < threads_n; i++)

View File

@@ -64,7 +64,7 @@ protected:
if (ret < 0)
{
throw spdlog_ex("__android_log_write() failed", ret);
SPDLOG_THROW spdlog_ex("__android_log_write() failed", ret);
}
}

View File

@@ -52,7 +52,7 @@ public:
{
if (rotation_hour < 0 || rotation_hour > 23 || rotation_minute < 0 || rotation_minute > 59)
{
throw spdlog_ex("daily_file_sink: Invalid rotation time in ctor");
SPDLOG_THROW spdlog_ex("daily_file_sink: Invalid rotation time in ctor");
}
auto now = log_clock::now();
file_helper_.open(FileNameCalc::calc_filename(base_filename_, now_tm(now)), truncate_);

View File

@@ -112,7 +112,7 @@ SPDLOG_INLINE void rotating_file_sink<Mutex>::rotate_()
{
file_helper_.reopen(true); // truncate the log file anyway to prevent it to grow beyond its limit!
current_size_ = 0;
throw spdlog_ex("rotating_file_sink: failed renaming " + filename_to_str(src) + " to " + filename_to_str(target), errno);
SPDLOG_THROW spdlog_ex("rotating_file_sink: failed renaming " + filename_to_str(src) + " to " + filename_to_str(target), errno);
}
}
}

View File

@@ -66,7 +66,7 @@ protected:
if (err)
{
throw spdlog_ex("Failed writing to systemd", errno);
SPDLOG_THROW spdlog_ex("Failed writing to systemd", errno);
}
}

View File

@@ -153,7 +153,7 @@ void SPDLOG_INLINE wincolor_sink<ConsoleMutex>::write_to_file_(const fmt::memory
bool ok = ::WriteFile(out_handle_, formatted.data() + total_written, size - total_written, &bytes_written, nullptr) != 0;
if (!ok || bytes_written == 0)
{
throw spdlog_ex("wincolor_sink: write_to_file_ failed. GetLastError(): " + std::to_string(::GetLastError()));
SPDLOG_THROW spdlog_ex("wincolor_sink: write_to_file_ failed. GetLastError(): " + std::to_string(::GetLastError()));
}
total_written += bytes_written;
} while (total_written < size);