diff options
author | bunnei <bunneidev@gmail.com> | 2021-08-23 05:40:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-23 05:40:18 +0200 |
commit | f65f8b909773ba79f54423c7d5d5eb1653cb7733 (patch) | |
tree | 3e851ea4e3bf6a353dba89029ab087709d33e366 /src/common/logging/backend.h | |
parent | Merge pull request #6904 from Morph1984/lang-settings-range (diff) | |
parent | logging: Simplify and make thread-safe (diff) | |
download | yuzu-f65f8b909773ba79f54423c7d5d5eb1653cb7733.tar yuzu-f65f8b909773ba79f54423c7d5d5eb1653cb7733.tar.gz yuzu-f65f8b909773ba79f54423c7d5d5eb1653cb7733.tar.bz2 yuzu-f65f8b909773ba79f54423c7d5d5eb1653cb7733.tar.lz yuzu-f65f8b909773ba79f54423c7d5d5eb1653cb7733.tar.xz yuzu-f65f8b909773ba79f54423c7d5d5eb1653cb7733.tar.zst yuzu-f65f8b909773ba79f54423c7d5d5eb1653cb7733.zip |
Diffstat (limited to 'src/common/logging/backend.h')
-rw-r--r-- | src/common/logging/backend.h | 113 |
1 files changed, 7 insertions, 106 deletions
diff --git a/src/common/logging/backend.h b/src/common/logging/backend.h index 4b9a910c1..cb7839ee9 100644 --- a/src/common/logging/backend.h +++ b/src/common/logging/backend.h @@ -5,120 +5,21 @@ #pragma once #include <filesystem> -#include <memory> -#include <string> -#include <string_view> #include "common/logging/filter.h" -#include "common/logging/log.h" - -namespace Common::FS { -class IOFile; -} namespace Common::Log { class Filter; -/** - * Interface for logging backends. As loggers can be created and removed at runtime, this can be - * used by a frontend for adding a custom logging backend as needed - */ -class Backend { -public: - virtual ~Backend() = default; - - virtual void SetFilter(const Filter& new_filter) { - filter = new_filter; - } - virtual const char* GetName() const = 0; - virtual void Write(const Entry& entry) = 0; - -private: - Filter filter; -}; - -/** - * Backend that writes to stderr without any color commands - */ -class ConsoleBackend : public Backend { -public: - ~ConsoleBackend() override; - - static const char* Name() { - return "console"; - } - const char* GetName() const override { - return Name(); - } - void Write(const Entry& entry) override; -}; - -/** - * Backend that writes to stderr and with color - */ -class ColorConsoleBackend : public Backend { -public: - ~ColorConsoleBackend() override; - - static const char* Name() { - return "color_console"; - } - - const char* GetName() const override { - return Name(); - } - void Write(const Entry& entry) override; -}; +/// Initializes the logging system. This should be the first thing called in main. +void Initialize(); -/** - * Backend that writes to a file passed into the constructor - */ -class FileBackend : public Backend { -public: - explicit FileBackend(const std::filesystem::path& filename); - ~FileBackend() override; - - static const char* Name() { - return "file"; - } - - const char* GetName() const override { - return Name(); - } - - void Write(const Entry& entry) override; - -private: - std::unique_ptr<FS::IOFile> file; - std::size_t bytes_written = 0; -}; - -/** - * Backend that writes to Visual Studio's output window - */ -class DebuggerBackend : public Backend { -public: - ~DebuggerBackend() override; - - static const char* Name() { - return "debugger"; - } - const char* GetName() const override { - return Name(); - } - void Write(const Entry& entry) override; -}; - -void AddBackend(std::unique_ptr<Backend> backend); - -void RemoveBackend(std::string_view backend_name); - -Backend* GetBackend(std::string_view backend_name); +void DisableLoggingInTests(); /** - * The global filter will prevent any messages from even being processed if they are filtered. Each - * backend can have a filter, but if the level is lower than the global filter, the backend will - * never get the message + * The global filter will prevent any messages from even being processed if they are filtered. */ void SetGlobalFilter(const Filter& filter); -} // namespace Common::Log
\ No newline at end of file + +void SetColorConsoleBackendEnabled(bool enabled); +} // namespace Common::Log |