Class tcp_sink

Synopsis

#include <include/spdlog/sinks/tcp_sink.h>

template<typename Mutex>
class tcp_sink : public spdlog::sinks::base_sink<Mutex>

Description

No description yet.

Inheritance

Ancestors: base_sink

Methods

tcp_sinkconnect to tcp host/port or throw if failed host can be hostname or ip address
~tcp_sink
flush_
sink_it_

Source

Lines 42-75 in include/spdlog/sinks/tcp_sink.h.

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_;
};





Add Discussion

Log in to comment