Hazelcast C++ Client
Hazelcast C++ Client Library
Loading...
Searching...
No Matches
hazelcast::logger Class Reference

Public Types

enum class  level : int {
  all = (std::numeric_limits<int>::min)() , finest = 300 , finer = 400 , fine = 500 ,
  info = 800 , warning = 900 , severe = 1000 , off = (std::numeric_limits<int>::max)()
}
using handler_type

Public Member Functions

 logger (std::string instance_name, std::string cluster_name, level lvl, handler_type handler)
bool enabled (level lvl) noexcept
void log (level lvl, const std::string &msg) noexcept

Static Public Member Functions

static void default_handler (const std::string &instance_name, const std::string &cluster_name, level lvl, const std::string &msg) noexcept

Detailed Description

Definition at line 26 of file logger.h.

Member Typedef Documentation

◆ handler_type

using hazelcast::logger::handler_type
Initial value:
std::function<
void(const std::string&, const std::string&, level, const std::string&)>

Definition at line 34 of file logger.h.

Member Enumeration Documentation

◆ level

enum class hazelcast::logger::level : int
strong

Definition at line 59 of file logger.h.

60{
61 all = (std::numeric_limits<int>::min)(),
62 finest = 300,
63 finer = 400,
64 fine = 500,
65 info = 800,
66 warning = 900,
67 severe = 1000,
68 off = (std::numeric_limits<int>::max)()
69};

Constructor & Destructor Documentation

◆ logger()

hazelcast::logger::logger ( std::string instance_name,
std::string cluster_name,
level lvl,
handler_type handler )

Definition at line 58 of file logger.cpp.

62 : instance_name_{ std::move(instance_name) }
63 , cluster_name_{ std::move(cluster_name) }
64 , level_{ level }
65 , handler_{ std::move(handler) }
66{}

Member Function Documentation

◆ default_handler()

void hazelcast::logger::default_handler ( const std::string & instance_name,
const std::string & cluster_name,
level lvl,
const std::string & msg )
staticnoexcept

Definition at line 101 of file logger.cpp.

105{
106
107 auto tp = std::chrono::system_clock::now();
108 auto t = std::chrono::system_clock::to_time_t(tp);
109 auto local_t = time_t_to_localtime(t);
110
111 auto dur = tp.time_since_epoch();
112 auto sec = std::chrono::duration_cast<std::chrono::seconds>(dur);
113
114 auto ms =
115 std::chrono::duration_cast<std::chrono::milliseconds>(dur - sec).count();
116
117 std::ostringstream sstrm;
118
119 char time_buffer[80];
120 std::strftime(
121 time_buffer, sizeof(time_buffer), "%d/%m/%Y %H:%M:%S.", &local_t);
122 sstrm << time_buffer << std::setfill('0') << std::setw(3) << ms << ' '
123 << lvl << ": [" << std::this_thread::get_id() << "] " << instance_name
124 << '[' << cluster_name << "] [" << client::version() << "] " << msg
125 << '\n';
126
127 {
128 std::lock_guard<std::mutex> g(cout_lock_);
129 std::cout << sstrm.str() << std::flush;
130 }
131}

◆ enabled()

bool hazelcast::logger::enabled ( level lvl)
noexcept

Definition at line 69 of file logger.cpp.

70{
71 return lvl >= level_;
72}

◆ log()

void hazelcast::logger::log ( level lvl,
const std::string & msg )
noexcept

Definition at line 75 of file logger.cpp.

76{
77 handler_(instance_name_, cluster_name_, lvl, msg);
78}

The documentation for this class was generated from the following files: