MySQL 8.0.32
Source Code Documentation
gcs_basic_logging.h
Go to the documentation of this file.
1/* Copyright (c) 2017, 2022, Oracle and/or its affiliates.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License, version 2.0,
5 as published by the Free Software Foundation.
6
7 This program is also distributed with certain software (including
8 but not limited to OpenSSL) that is licensed under separate terms,
9 as designated in a particular file or component or in included license
10 documentation. The authors of MySQL hereby grant you an additional
11 permission to link the program and your derivative works with the
12 separately licensed software that they have included with MySQL.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License, version 2.0, for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22
27
28extern void cb_xcom_logger(const int64_t level, const char *message);
29extern void cb_xcom_debugger(const char *format, ...);
30extern int cb_xcom_debugger_check(const int64_t options);
31
32/**
33 Class that defines basic logging infra-structure to be used in the test
34 cases, for example.
35*/
37 public:
38 /*
39 Pointer to a logger object that is responsible for handling fatal, error,
40 warning and information messages.
41 */
43
44 /*
45 Pointer to a debugger object that is responsible for handling debug and
46 trace messages.
47 */
49
50 /*
51 Pointer to a sink where both the messages produced by a logger or debugger
52 will be written to. This is a simple logging infra-structure and messages
53 are always written to the standard output.
54 */
56
57 /*
58 Save debug options that will be restored when the object is destructed.
59 */
61
62 /**
63 Constructor that creates the logger, debugger and sink.
64 */
66 : logger(nullptr),
72
74
77
80
84
86 }
87
88 /**
89 Destructor that cleans up and deallocates the logger, debugger and sink.
90 */
94 delete logger;
95
98 delete debugger;
99
100 sink->finalize();
101 delete sink;
102
104 }
105};
Circular buffer that can be used to asynchronously feed a sink.
Definition: gcs_logging_system.h:190
enum_gcs_error finalize()
Asynchronous circular buffer finalization method.
Definition: gcs_logging_system.cc:118
Class that defines basic logging infra-structure to be used in the test cases, for example.
Definition: gcs_basic_logging.h:36
Gcs_basic_logging()
Constructor that creates the logger, debugger and sink.
Definition: gcs_basic_logging.h:65
Gcs_default_debugger * debugger
Definition: gcs_basic_logging.h:48
Gcs_async_buffer * sink
Definition: gcs_basic_logging.h:55
Gcs_default_logger * logger
Definition: gcs_basic_logging.h:42
virtual ~Gcs_basic_logging()
Destructor that cleans up and deallocates the logger, debugger and sink.
Definition: gcs_basic_logging.h:91
int64_t saved_debug_options
Definition: gcs_basic_logging.h:60
static enum_gcs_error finalize()
Free any resource used in the debugging system.
Definition: gcs_logging_system.h:731
static enum_gcs_error initialize(Gcs_default_debugger *debugger)
Set the debugger object and initialize it by invoking its initialization method.
Definition: gcs_logging_system.h:711
static bool force_debug_options(const int64_t debug_options)
Change the current set of debug options by the new debug options expressed as an integer parameter.
Definition: gcs_logging.cc:202
static int64_t get_current_debug_options()
Get the current set of debug options.
Definition: gcs_logging.cc:87
Default debugger which is used only by GCS and XCOM.
Definition: gcs_logging_system.h:509
enum_gcs_error finalize()
Default debugger finalization method.
Definition: gcs_logging_system.cc:337
Default logger which is internally used by GCS and XCOM if nothing else is injected by Group Replicat...
Definition: gcs_logging_system.h:450
enum_gcs_error finalize() override
Default logger finalization method.
Definition: gcs_logging_system.cc:321
static enum_gcs_error finalize()
Free any resource used in the logging system.
Definition: gcs_logging.cc:43
static enum_gcs_error initialize(Logger_interface *logger)
Set the logger object and initialize it by invoking its initialization method.
Definition: gcs_logging.cc:38
Standard output sink.
Definition: gcs_logging_system.h:387
static int init_net()
Definition: gcs_xcom_utils.cc:125
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:221
int cb_xcom_debugger_check(const int64_t options)
Callback function used by XCOM to check whether a debug module is enabled or not.
Definition: gcs_xcom_interface.cc:1865
void cb_xcom_debugger(const char *format,...)
Callback function used by XCOM to write debug messages in coordination with the GCS layer.
Definition: gcs_xcom_interface.cc:1852
void cb_xcom_logger(const int64_t level, const char *message)
Callback function used by XCOM to write information, warning and error messages in coordination with ...
Definition: gcs_xcom_interface.cc:1833
@ GCS_DEBUG_ALL
Definition: gcs_logging.h:245
@ GCS_DEBUG_NONE
Definition: gcs_logging.h:237
Definition: options.cc:48
void set_xcom_logger(xcom_logger x)
Definition: xcom_interface.cc:105
void set_xcom_debugger_check(xcom_debugger_check x)
Definition: xcom_interface.cc:109
void set_xcom_debugger(xcom_debugger x)
Definition: xcom_interface.cc:107