diff options
Diffstat (limited to 'thirdparty/spdlog/sinks/tcp_sink.h')
-rw-r--r-- | thirdparty/spdlog/sinks/tcp_sink.h | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/thirdparty/spdlog/sinks/tcp_sink.h b/thirdparty/spdlog/sinks/tcp_sink.h deleted file mode 100644 index 9dd9e51d..00000000 --- a/thirdparty/spdlog/sinks/tcp_sink.h +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. -// Distributed under the MIT License (http://opensource.org/licenses/MIT) - -#pragma once - -#include <spdlog/common.h> -#include <spdlog/sinks/base_sink.h> -#include <spdlog/details/null_mutex.h> -#ifdef _WIN32 -#include <spdlog/details/tcp_client-windows.h> -#else -#include <spdlog/details/tcp_client.h> -#endif - -#include <mutex> -#include <string> -#include <chrono> -#include <functional> - -#pragma once - -// Simple tcp client sink -// Connects to remote address and send the formatted log. -// Will attempt to reconnect if connection drops. -// If more complicated behaviour is needed (i.e get responses), you can inherit it and override the sink_it_ method. - -namespace spdlog { -namespace sinks { - -struct tcp_sink_config -{ - std::string server_host; - int server_port; - bool lazy_connect = false; // if true connect on first log call instead of on construction - - tcp_sink_config(std::string host, int port) - : server_host{std::move(host)} - , server_port{port} - {} -}; - -template<typename Mutex> -class tcp_sink : public spdlog::sinks::base_sink<Mutex> -{ -public: - // connect to tcp host/port or throw if failed - // host can be hostname or ip address - - explicit tcp_sink(tcp_sink_config sink_config) - : config_{std::move(sink_config)} - { - if (!config_.lazy_connect) - { - this->client_.connect(config_.server_host, config_.server_port); - } - } - - ~tcp_sink() override = default; - -protected: - void sink_it_(const spdlog::details::log_msg &msg) override - { - spdlog::memory_buf_t formatted; - spdlog::sinks::base_sink<Mutex>::formatter_->format(msg, formatted); - if (!client_.is_connected()) - { - client_.connect(config_.server_host, config_.server_port); - } - client_.send(formatted.data(), formatted.size()); - } - - void flush_() override {} - tcp_sink_config config_; - details::tcp_client client_; -}; - -using tcp_sink_mt = tcp_sink<std::mutex>; -using tcp_sink_st = tcp_sink<spdlog::details::null_mutex>; - -} // namespace sinks -} // namespace spdlog |