Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
fallback_logger_backend.h
Go to the documentation of this file.
1// BSD 3-Clause License
2// Copyright (c) 2025, 🍀☀🌕🌥 🌊
3// See the LICENSE file in the project root for full license information.
4
19#pragma once
20
21#include "logger_backend.h"
22
23#include <fstream>
24#include <mutex>
25
26namespace database
27{
28namespace integrated
29{
30namespace adapters
31{
32namespace backends
33{
34
43{
44public:
49 explicit fallback_logger_backend(const db_logger_config& config);
50
51 ~fallback_logger_backend() override;
52
53 // Non-copyable, non-movable
58
61 bool is_initialized() const override;
62 void log(db_log_level level, const std::string& message) override;
63 void flush() override;
64
65private:
68 std::mutex mutex_;
69 std::ofstream log_file_;
70};
71
72} // namespace backends
73} // namespace adapters
74} // namespace integrated
75} // namespace database
common::VoidResult shutdown() override
Shutdown the logger backend gracefully.
fallback_logger_backend & operator=(fallback_logger_backend &&)=delete
common::VoidResult initialize() override
Initialize the logger backend.
void log(db_log_level level, const std::string &message) override
Log a message.
bool is_initialized() const override
Check if backend is initialized.
fallback_logger_backend & operator=(const fallback_logger_backend &)=delete
fallback_logger_backend(const fallback_logger_backend &)=delete
fallback_logger_backend(const db_logger_config &config)
Construct fallback logger backend.
Abstract base class for logger backends.
Abstract interface for logger backends.
db_log_level
Database logging level enumeration.