Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 10:08:24

0001 /* Copyright (c) 2018-2024 Marcelo Zimbres Silva (mzimbres@gmail.com)
0002  *
0003  * Distributed under the Boost Software License, Version 1.0. (See
0004  * accompanying file LICENSE.txt)
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 } // boost::redis