26#ifndef MYSQL_HARNESS_LOGGER_LOGGER_INCLUDED
27#define MYSQL_HARNESS_LOGGER_LOGGER_INCLUDED
29#include "harness_export.h"
58 void attach_handler(std::string name);
59 void detach_handler(std::string name,
bool handler_must_exist =
true);
62 void lazy_handle(
LogLevel record_level,
63 std::function<
Record()> record_creator)
const;
77 bool is_handled(
LogLevel level)
const;
83 precision_ = precision;
101 void debug(std::invocable
auto producer)
const {
106 void info(std::invocable
auto producer)
const {
111 void warning(std::invocable
auto producer)
const {
116 void system(std::invocable
auto producer)
const {
121 void note(std::invocable
auto producer)
const {
126 void error(std::invocable
auto producer)
const {
136 bool init_logger()
const;
139 mutable std::optional<mysql_harness::logging::Logger>
logger_;
140 mutable std::atomic<bool> logger_ready_{
false};
void debug(const std::string &msg) const
Definition: logger.h:104
void warning(std::invocable auto producer) const
Definition: logger.h:111
DomainLogger(std::string domain)
Definition: logger.h:99
void info(const std::string &msg) const
Definition: logger.h:109
std::mutex logger_mtx_
Definition: logger.h:138
void info(std::invocable auto producer) const
Definition: logger.h:106
void note(const std::string &msg) const
Definition: logger.h:124
void system(std::invocable auto producer) const
Definition: logger.h:116
void note(std::invocable auto producer) const
Definition: logger.h:121
void system(const std::string &msg) const
Definition: logger.h:119
void debug(std::invocable auto producer) const
Definition: logger.h:101
void warning(const std::string &msg) const
Definition: logger.h:114
void error(const std::string &msg) const
Definition: logger.h:129
std::optional< mysql_harness::logging::Logger > logger_
Definition: logger.h:139
void error(std::invocable auto producer) const
Definition: logger.h:126
Logger class.
Definition: logger.h:50
const Registry * registry_
Definition: logger.h:91
std::set< std::string > handlers_
Definition: logger.h:90
LogLevel get_level() const
Definition: logger.h:81
LogLevel level_
Definition: logger.h:88
void set_level(LogLevel level)
Definition: logger.h:80
const std::set< std::string > & get_handler_names() const
Definition: logger.h:78
Logger()
Definition: logger.h:56
LogTimestampPrecision precision_
Definition: logger.h:89
LogTimestampPrecision get_timestamp_precision() const
Definition: logger.h:85
void set_timestamp_precision(LogTimestampPrecision precision)
Definition: logger.h:82
Definition: registry.h:48
Logging interface for using and extending the logging subsystem.
static int record
Definition: mysqltest.cc:195
static loglevel log_level(const Sql_condition *condition)
Definition: histogram.cc:1650
const LogLevel kDefaultLogLevel
Default log level used by the router.
Definition: logging.h:140
LogLevel
Log level values.
Definition: logging.h:90
@ kInfo
Informational message.
@ kWarning
Warning message.
@ kNote
Note level contains additional information over the normal informational messages.
LogTimestampPrecision
Log timestamp precision values.
Definition: logging.h:160
static int handle(int sql_errno, const char *sqlstate, const char *message, void *state)
Bridge function between the C++ API offered by this module and the C API of the parser service.
Definition: services.cc:64
Definition: gcs_xcom_synode.h:64
#define MYSQL_ROUTER_LOG_DOMAIN
Definition: main.cc:26
Log record containing information collected by the logging system.
Definition: logging.h:182