MySQL  8.0.22
Source Code Documentation
gcs_basic_logging.h
Go to the documentation of this file.
1 /* Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
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 
28 extern void cb_xcom_logger(const int64_t level, const char *message);
29 extern void cb_xcom_debugger(const char *format, ...);
30 extern 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),
67  debugger(nullptr),
68  sink(nullptr),
69  saved_debug_options(GCS_DEBUG_NONE) {
70  saved_debug_options = Gcs_debug_options::get_current_debug_options();
72 
73  sink = new Gcs_async_buffer(new Gcs_output_sink());
74 
75  logger = new Gcs_default_logger(sink);
77 
78  debugger = new Gcs_default_debugger(sink);
80 
84 
86  }
87 
88  /**
89  Destructor that cleans up and deallocates the logger, debugger and sink.
90  */
91  virtual ~Gcs_basic_logging() {
93  logger->finalize();
94  delete logger;
95 
97  debugger->finalize();
98  delete debugger;
99 
100  sink->finalize();
101  delete sink;
102 
103  Gcs_debug_options::force_debug_options(saved_debug_options);
104  }
105 };
enum_gcs_error finalize()
Asynchronous circular buffer finalization method.
Definition: gcs_logging_system.cc:118
enum_gcs_error finalize()
Default debugger finalization method.
Definition: gcs_logging_system.cc:337
Gcs_default_debugger * debugger
Definition: gcs_basic_logging.h:48
Standard output sink.
Definition: gcs_logging_system.h:387
Definition: gcs_logging.h:244
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:1671
Gcs_basic_logging()
Constructor that creates the logger, debugger and sink.
Definition: gcs_basic_logging.h:65
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 enum_gcs_error initialize(Logger_interface *logger)
Set the logger object and initialize it by invoking its initialization method.
Definition: gcs_logging.cc:38
static int64_t get_current_debug_options()
Get the current set of debug options.
Definition: gcs_logging.cc:87
static const Query_options options
Definition: sql_show_processlist.cc:65
int64_t saved_debug_options
Definition: gcs_basic_logging.h:60
virtual ~Gcs_basic_logging()
Destructor that cleans up and deallocates the logger, debugger and sink.
Definition: gcs_basic_logging.h:91
Default logger which is internally used by GCS and XCOM if nothing else is injected by Group Replicat...
Definition: gcs_logging_system.h:450
Class that defines basic logging infra-structure to be used in the test cases, for example...
Definition: gcs_basic_logging.h:36
Gcs_default_logger * logger
Definition: gcs_basic_logging.h:42
static enum_gcs_error finalize()
Free any resource used in the debugging system.
Definition: gcs_logging_system.h:731
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
Circular buffer that can be used to asynchronously feed a sink.
Definition: gcs_logging_system.h:190
Definition: gcs_logging.h:236
static int init_net()
Definition: gcs_xcom_utils.cc:125
Default debugger which is used only by GCS and XCOM.
Definition: gcs_logging_system.h:509
enum_gcs_error finalize() override
Default logger finalization method.
Definition: gcs_logging_system.cc:321
void set_xcom_logger(xcom_logger x)
Definition: xcom_interface.cc:99
static enum_gcs_error finalize()
Free any resource used in the logging system.
Definition: gcs_logging.cc:43
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:1652
Gcs_async_buffer * sink
Definition: gcs_basic_logging.h:55
void set_xcom_debugger(xcom_debugger x)
Definition: xcom_interface.cc:101
Dialog Client Authentication nullptr
Definition: dialog.cc:353
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:1684
void set_xcom_debugger_check(xcom_debugger_check x)
Definition: xcom_interface.cc:103