![]() |
MySQL 9.5.0
Source Code Documentation
|
#include <registry.h>
Public Member Functions | |
| Registry ()=default | |
| Registry (const Registry &)=delete | |
| Registry & | operator= (const Registry &)=delete |
| ~Registry ()=default | |
| void | create_logger (const std::string &name, LogLevel level=LogLevel::kNotSet) |
| Create a logger in the internal registry. More... | |
| void | remove_logger (const std::string &name) |
| Remove a named logger from the internal registry. More... | |
| Logger | get_logger (const std::string &name) const |
| Return logger for particular module. More... | |
| Logger | get_logger_or_default (const std::string &name, const std::string &default_name) const |
| Return logger for particular module. More... | |
| Logger | get_logger_or_default (const std::string &name) const |
| Return logger for particular module. More... | |
| void | update_logger (const std::string &name, const Logger &logger) |
| Update logger for particular module. More... | |
| std::set< std::string > | get_logger_names () const |
| Get the logger names (id's) from the internal registry. More... | |
| void | add_handler (std::string name, std::shared_ptr< Handler > handler) |
| Add a handler to the internal registry. More... | |
| void | remove_handler (std::string name) |
| Remove handler from the internal registry. More... | |
| std::shared_ptr< Handler > | get_handler (const std::string &name) const |
| Return handler in the internal registry. More... | |
| std::set< std::string > | get_handler_names () const |
| Get the handler names from the internal registry. More... | |
| bool | is_handled (LogLevel level) const |
| Check if a log-level is handled by at least one handler. More... | |
| void | set_ready () noexcept |
| Flag that the registry has been initialized. More... | |
| bool | is_ready () const noexcept |
| Query if logging facility is ready to use. More... | |
| void | flush_all_loggers (const std::string &dst="") |
| Force the flush (reopen) on all registered logger handlers, while moving old logger file to dst. More... | |
Private Attributes | |
| std::shared_mutex | mtx_ |
| std::map< std::string, Logger > | loggers_ |
| std::map< std::string, std::shared_ptr< Handler > > | handlers_ |
| std::atomic< bool > | ready_ {false} |
|
default |
|
delete |
|
default |
| void mysql_harness::logging::Registry::add_handler | ( | std::string | name, |
| std::shared_ptr< Handler > | handler | ||
| ) |
Add a handler to the internal registry.
| name | Handler id |
| handler | Shared pointer to handler |
| std::logic_error | if there is a handler already registered with given module name |
| void mysql_harness::logging::Registry::create_logger | ( | const std::string & | name, |
| LogLevel | level = LogLevel::kNotSet |
||
| ) |
Create a logger in the internal registry.
| name | Logger id (log domain it services) |
| level | Log level for logger |
| std::logic_error | if there is a logger already registered with given module name |
| void mysql_harness::logging::Registry::flush_all_loggers | ( | const std::string & | dst = "" | ) |
Force the flush (reopen) on all registered logger handlers, while moving old logger file to dst.
| dst | destination filename for old log |
| std::shared_ptr< Handler > mysql_harness::logging::Registry::get_handler | ( | const std::string & | name | ) | const |
Return handler in the internal registry.
| name | Handler id |
| std::logic_error | if no handler is registered for given name |
| std::set< std::string > mysql_harness::logging::Registry::get_handler_names | ( | ) | const |
Get the handler names from the internal registry.
| Logger mysql_harness::logging::Registry::get_logger | ( | const std::string & | name | ) | const |
Return logger for particular module.
The reason why this function returns by value is thread-safety.
| name | Logger id (log domain it services) |
| std::logic_error | if no logger is registered for given module name |
| std::set< std::string > mysql_harness::logging::Registry::get_logger_names | ( | ) | const |
Get the logger names (id's) from the internal registry.
| Logger mysql_harness::logging::Registry::get_logger_or_default | ( | const std::string & | name | ) | const |
Return logger for particular module.
if it doesn't exist, get the default logger.
| name | Logger id (log domain it services) |
| std::logic_error | if neither logger is registered for given module name |
| Logger mysql_harness::logging::Registry::get_logger_or_default | ( | const std::string & | name, |
| const std::string & | default_name | ||
| ) | const |
Return logger for particular module.
if it doesn't exist, get the default logger.
| name | Logger id (log domain it services) |
| default_name | name of the default logger |
| std::logic_error | if neither logger is registered for given module name |
| bool mysql_harness::logging::Registry::is_handled | ( | LogLevel | level | ) | const |
Check if a log-level is handled by at least one handler.
| true | at least one handler |
| false | log-level will be ignored. |
|
inlinenoexcept |
Query if logging facility is ready to use.
The exact meaning of this flag is not defined here, see description in set_ready()
| void mysql_harness::logging::Registry::remove_handler | ( | std::string | name | ) |
Remove handler from the internal registry.
| name | Handler id |
| std::logic_error | if no handler is registered for given name |
| void mysql_harness::logging::Registry::remove_logger | ( | const std::string & | name | ) |
Remove a named logger from the internal registry.
| name | Logger id (log domain it services) |
| std::logic_error | if there is no logger registered with given module name |
|
inlinenoexcept |
Flag that the registry has been initialized.
This method should be called after log initialization is complete to flag that logging facility is now available. Note that this is a convenience flag - it does not directly affect the operation of Registry. However, a logging function (i.e. log_message()) might want to query this flag when called and do whatever it deems appropriate.
| void mysql_harness::logging::Registry::update_logger | ( | const std::string & | name, |
| const Logger & | logger | ||
| ) |
Update logger for particular module.
This function provides a thread-safe way of updating the Logger object in the registry.
| name | Logger id (log domain it services) |
| logger | Logger object |
| std::logic_error | if no logger is registered for given module name |
|
private |
|
private |
|
mutableprivate |
|
private |