File indexing completed on 2025-12-16 10:08:24
0001
0002
0003
0004
0005
0006
0007 #include <boost/redis/logger.hpp>
0008 #include <boost/system/error_code.hpp>
0009 #include <iostream>
0010 #include <iterator>
0011
0012 namespace boost::redis
0013 {
0014
0015 void logger::write_prefix()
0016 {
0017 if (!std::empty(prefix_))
0018 std::clog << prefix_;
0019 }
0020
0021 void logger::on_resolve(system::error_code const& ec, asio::ip::tcp::resolver::results_type const& res)
0022 {
0023 if (level_ < level::info)
0024 return;
0025
0026 write_prefix();
0027
0028 std::clog << "resolve results: ";
0029
0030 if (ec) {
0031 std::clog << ec.message() << std::endl;
0032 } else {
0033 auto begin = std::cbegin(res);
0034 auto end = std::cend(res);
0035
0036 if (begin == end)
0037 return;
0038
0039 std::clog << begin->endpoint();
0040 for (auto iter = std::next(begin); iter != end; ++iter)
0041 std::clog << ", " << iter->endpoint();
0042 }
0043
0044 std::clog << std::endl;
0045 }
0046
0047 void logger::on_connect(system::error_code const& ec, asio::ip::tcp::endpoint const& ep)
0048 {
0049 if (level_ < level::info)
0050 return;
0051
0052 write_prefix();
0053
0054 std::clog << "connected to ";
0055
0056 if (ec)
0057 std::clog << ec.message() << std::endl;
0058 else
0059 std::clog << ep;
0060
0061 std::clog << std::endl;
0062 }
0063
0064 void logger::on_ssl_handshake(system::error_code const& ec)
0065 {
0066 if (level_ < level::info)
0067 return;
0068
0069 write_prefix();
0070
0071 std::clog << "SSL handshake: " << ec.message() << std::endl;
0072 }
0073
0074 void
0075 logger::on_write(
0076 system::error_code const& ec,
0077 std::string const& payload)
0078 {
0079 if (level_ < level::info)
0080 return;
0081
0082 write_prefix();
0083
0084 if (ec)
0085 std::clog << "writer_op: " << ec.message();
0086 else
0087 std::clog << "writer_op: " << std::size(payload) << " bytes written.";
0088
0089 std::clog << std::endl;
0090 }
0091
0092 void logger::on_read(system::error_code const& ec, std::size_t n)
0093 {
0094 if (level_ < level::info)
0095 return;
0096
0097 write_prefix();
0098
0099 if (ec)
0100 std::clog << "reader_op: " << ec.message();
0101 else
0102 std::clog << "reader_op: " << n << " bytes read.";
0103
0104 std::clog << std::endl;
0105 }
0106
0107 void
0108 logger::on_hello(
0109 system::error_code const& ec,
0110 generic_response const& resp)
0111 {
0112 if (level_ < level::info)
0113 return;
0114
0115 write_prefix();
0116
0117 if (ec) {
0118 std::clog << "hello_op: " << ec.message();
0119 if (resp.has_error())
0120 std::clog << " (" << resp.error().diagnostic << ")";
0121 } else {
0122 std::clog << "hello_op: Success";
0123 }
0124
0125 std::clog << std::endl;
0126 }
0127
0128 void logger::trace(std::string_view message)
0129 {
0130 if (level_ < level::debug)
0131 return;
0132
0133 write_prefix();
0134
0135 std::clog << message << std::endl;
0136 }
0137
0138 void logger::trace(std::string_view op, system::error_code const& ec)
0139 {
0140 if (level_ < level::debug)
0141 return;
0142
0143 write_prefix();
0144
0145 std::clog << op << ": " << ec.message() << std::endl;
0146 }
0147
0148 }