|
Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
|
Unified logging adapter for database operations. More...
#include <logger_adapter.h>

Public Member Functions | |
| logger_adapter (const db_logger_config &config, logger_backend_type backend_type=logger_backend_type::auto_select) | |
| Construct logger adapter with configuration. | |
| ~logger_adapter () | |
| Destructor - ensures proper shutdown. | |
| logger_adapter (const logger_adapter &)=delete | |
| logger_adapter & | operator= (const logger_adapter &)=delete |
| logger_adapter (logger_adapter &&) noexcept | |
| logger_adapter & | operator= (logger_adapter &&)=delete |
| common::VoidResult | initialize () |
| Initialize the logger. | |
| common::VoidResult | shutdown () |
| Shutdown the logger gracefully. | |
| bool | is_initialized () const |
| Check if logger is initialized. | |
| void | log_query (db_log_level level, const std::string &query, std::chrono::microseconds duration) |
| Log a SQL query execution. | |
| void | log_slow_query (const std::string &query, std::chrono::microseconds duration, std::chrono::milliseconds threshold) |
| Log a slow query with warning. | |
| void | log_connection_event (const std::string &event, const std::string &details) |
| Log a connection pool event. | |
| void | log_transaction (const std::string &operation, bool success, const std::string &details) |
| Log a transaction operation. | |
| void | log_pool_event (const std::string &event, std::size_t active, std::size_t idle) |
| Log a connection pool state change. | |
| void | log_error (const std::string &operation, const std::string &error_msg, const std::string &sql_state="") |
| Log a database error. | |
| void | log (db_log_level level, const std::string &message) |
| Generic log message. | |
| void | flush () |
| Flush pending log messages. | |
Static Private Member Functions | |
| static std::unique_ptr< backends::logger_backend > | create_backend (const db_logger_config &config, logger_backend_type backend_type) |
| Create appropriate backend based on type. | |
Private Attributes | |
| const db_logger_config & | config_ |
| std::unique_ptr< backends::logger_backend > | backend_ |
| Logger backend implementation. | |
Unified logging adapter for database operations.
Provides a consistent logging interface with runtime backend selection. No longer uses conditional compilation - backend is selected at runtime.
Thread Safety: All public methods are thread-safe.
Definition at line 108 of file logger_adapter.h.
|
explicit |
Construct logger adapter with configuration.
| config | Logger configuration settings |
| backend_type | Backend type to use (default: auto_select) |
Definition at line 129 of file logger_adapter.cpp.
References database::integrated::adapters::auto_select.
| database::integrated::adapters::logger_adapter::~logger_adapter | ( | ) |
Destructor - ensures proper shutdown.
Automatically calls shutdown() if still initialized.
Definition at line 144 of file logger_adapter.cpp.
References backend_.
|
delete |
|
defaultnoexcept |
|
staticprivate |
Create appropriate backend based on type.
Definition at line 75 of file logger_adapter.cpp.
References database::integrated::adapters::auto_select, database::integrated::adapters::fallback, database::integrated::adapters::null, and database::integrated::adapters::system.
| void database::integrated::adapters::logger_adapter::flush | ( | ) |
Flush pending log messages.
Forces all buffered log messages to be written immediately. Useful before application exit or critical sections.
Definition at line 298 of file logger_adapter.cpp.
References backend_.
Referenced by test_basic_logging(), test_connection_logging(), test_error_logging(), test_log_level_filtering(), test_query_logging(), test_slow_query_detection(), test_thread_safety(), and test_transaction_logging().

| common::VoidResult database::integrated::adapters::logger_adapter::initialize | ( | ) |
Initialize the logger.
Sets up output writers (console, file) and starts the logger. Must be called before any logging operations.
Definition at line 154 of file logger_adapter.cpp.
References initialize().
Referenced by initialize(), test_basic_logging(), test_connection_logging(), test_error_logging(), test_initialization(), test_log_level_filtering(), test_query_logging(), test_slow_query_detection(), test_thread_safety(), and test_transaction_logging().


| bool database::integrated::adapters::logger_adapter::is_initialized | ( | ) | const |
Check if logger is initialized.
Definition at line 175 of file logger_adapter.cpp.
References backend_.
Referenced by test_initialization().

| void database::integrated::adapters::logger_adapter::log | ( | db_log_level | level, |
| const std::string & | message ) |
Generic log message.
| level | Log level |
| message | Message to log |
Definition at line 290 of file logger_adapter.cpp.
References backend_.
Referenced by test_basic_logging(), test_log_level_filtering(), and test_thread_safety().

| void database::integrated::adapters::logger_adapter::log_connection_event | ( | const std::string & | event, |
| const std::string & | details ) |
Log a connection pool event.
Examples: "acquired", "released", "timeout", "health_check"
| event | Event type (e.g., "acquired", "released") |
| details | Additional details (e.g., "Pool: main_pool, Priority: high") |
Definition at line 227 of file logger_adapter.cpp.
References backend_, and database::integrated::debug.
Referenced by test_connection_logging().

| void database::integrated::adapters::logger_adapter::log_error | ( | const std::string & | operation, |
| const std::string & | error_msg, | ||
| const std::string & | sql_state = "" ) |
Log a database error.
| operation | Operation that failed (e.g., "execute_query", "connect") |
| error_msg | Error message |
| sql_state | SQL state code (e.g., "08006" for connection failure) |
Definition at line 272 of file logger_adapter.cpp.
References backend_, and database::integrated::error.
Referenced by test_error_logging().

| void database::integrated::adapters::logger_adapter::log_pool_event | ( | const std::string & | event, |
| std::size_t | active, | ||
| std::size_t | idle ) |
Log a connection pool state change.
Examples: Pool resize, capacity changes
| event | Event type (e.g., "resized", "shrunk", "health_check_failed") |
| active | Number of active connections |
| idle | Number of idle connections |
Definition at line 258 of file logger_adapter.cpp.
References backend_, and database::integrated::info.
Referenced by test_connection_logging().

| void database::integrated::adapters::logger_adapter::log_query | ( | db_log_level | level, |
| const std::string & | query, | ||
| std::chrono::microseconds | duration ) |
Log a SQL query execution.
Automatically sanitizes the query (removes passwords, truncates if long). If duration exceeds slow_query_threshold, automatically logs as slow query.
| level | Log level (typically info or debug) |
| query | SQL query string (will be sanitized) |
| duration | Query execution time |
Definition at line 184 of file logger_adapter.cpp.
References backend_, config_, database::integrated::db_logger_config::log_slow_queries, log_slow_query(), and database::integrated::db_logger_config::slow_query_threshold.
Referenced by test_query_logging(), and test_slow_query_detection().


| void database::integrated::adapters::logger_adapter::log_slow_query | ( | const std::string & | query, |
| std::chrono::microseconds | duration, | ||
| std::chrono::milliseconds | threshold ) |
Log a slow query with warning.
Called automatically by log_query() when threshold exceeded, but can also be called manually.
| query | SQL query string |
| duration | Actual execution time |
| threshold | Configured slow query threshold |
Definition at line 209 of file logger_adapter.cpp.
References backend_, and database::integrated::warning.
Referenced by log_query(), and test_slow_query_detection().

| void database::integrated::adapters::logger_adapter::log_transaction | ( | const std::string & | operation, |
| bool | success, | ||
| const std::string & | details ) |
Log a transaction operation.
| operation | Transaction operation (e.g., "begin", "commit", "rollback") |
| success | Whether operation succeeded |
| details | Additional details (e.g., isolation level, error message) |
Definition at line 240 of file logger_adapter.cpp.
References backend_, database::integrated::error, database::integrated::info, and database::success.
Referenced by test_transaction_logging().

|
delete |
|
delete |
| common::VoidResult database::integrated::adapters::logger_adapter::shutdown | ( | ) |
Shutdown the logger gracefully.
Flushes all pending logs and closes files. Safe to call multiple times.
Definition at line 165 of file logger_adapter.cpp.
References backend_, and common::ok().
Referenced by test_basic_logging(), test_connection_logging(), test_error_logging(), test_initialization(), test_log_level_filtering(), test_query_logging(), test_slow_query_detection(), test_thread_safety(), and test_transaction_logging().


|
private |
Logger backend implementation.
Definition at line 259 of file logger_adapter.h.
Referenced by flush(), is_initialized(), log(), log_connection_event(), log_error(), log_pool_event(), log_query(), log_slow_query(), log_transaction(), shutdown(), and ~logger_adapter().
|
private |
Definition at line 258 of file logger_adapter.h.
Referenced by log_query().