diff options
author | Morph <39850852+Morph1984@users.noreply.github.com> | 2021-06-13 13:52:02 +0200 |
---|---|---|
committer | Morph <39850852+Morph1984@users.noreply.github.com> | 2021-06-13 17:05:58 +0200 |
commit | 8150c65c07c39ab842f8c3249464ece1af4db9b4 (patch) | |
tree | 8526f7bac5febb719665c3be957d93be6784f9ed /src/common | |
parent | Merge pull request #6452 from german77/sixaxis_firmware_stub (diff) | |
download | yuzu-8150c65c07c39ab842f8c3249464ece1af4db9b4.tar yuzu-8150c65c07c39ab842f8c3249464ece1af4db9b4.tar.gz yuzu-8150c65c07c39ab842f8c3249464ece1af4db9b4.tar.bz2 yuzu-8150c65c07c39ab842f8c3249464ece1af4db9b4.tar.lz yuzu-8150c65c07c39ab842f8c3249464ece1af4db9b4.tar.xz yuzu-8150c65c07c39ab842f8c3249464ece1af4db9b4.tar.zst yuzu-8150c65c07c39ab842f8c3249464ece1af4db9b4.zip |
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/logging/backend.cpp | 18 | ||||
-rw-r--r-- | src/common/logging/backend.h | 15 |
2 files changed, 27 insertions, 6 deletions
diff --git a/src/common/logging/backend.cpp b/src/common/logging/backend.cpp index 6aa8ac960..756b08dfe 100644 --- a/src/common/logging/backend.cpp +++ b/src/common/logging/backend.cpp @@ -17,6 +17,7 @@ #endif #include "common/assert.h" +#include "common/fs/file.h" #include "common/fs/fs.h" #include "common/logging/backend.h" #include "common/logging/log.h" @@ -140,10 +141,14 @@ private: std::chrono::steady_clock::time_point time_origin{std::chrono::steady_clock::now()}; }; +ConsoleBackend::~ConsoleBackend() = default; + void ConsoleBackend::Write(const Entry& entry) { PrintMessage(entry); } +ColorConsoleBackend::~ColorConsoleBackend() = default; + void ColorConsoleBackend::Write(const Entry& entry) { PrintColoredMessage(entry); } @@ -157,16 +162,19 @@ FileBackend::FileBackend(const std::filesystem::path& filename) { void(FS::RemoveFile(old_filename)); void(FS::RenameFile(filename, old_filename)); - file = FS::IOFile(filename, FS::FileAccessMode::Write, FS::FileType::TextFile); + file = + std::make_unique<FS::IOFile>(filename, FS::FileAccessMode::Write, FS::FileType::TextFile); } +FileBackend::~FileBackend() = default; + void FileBackend::Write(const Entry& entry) { // prevent logs from going over the maximum size (in case its spamming and the user doesn't // know) constexpr std::size_t MAX_BYTES_WRITTEN = 100 * 1024 * 1024; constexpr std::size_t MAX_BYTES_WRITTEN_EXTENDED = 1024 * 1024 * 1024; - if (!file.IsOpen()) { + if (!file->IsOpen()) { return; } @@ -176,12 +184,14 @@ void FileBackend::Write(const Entry& entry) { return; } - bytes_written += file.WriteString(FormatLogMessage(entry).append(1, '\n')); + bytes_written += file->WriteString(FormatLogMessage(entry).append(1, '\n')); if (entry.log_level >= Level::Error) { - void(file.Flush()); + void(file->Flush()); } } +DebuggerBackend::~DebuggerBackend() = default; + void DebuggerBackend::Write(const Entry& entry) { #ifdef _WIN32 ::OutputDebugStringW(UTF8ToUTF16W(FormatLogMessage(entry).append(1, '\n')).c_str()); diff --git a/src/common/logging/backend.h b/src/common/logging/backend.h index eb629a33f..826bde694 100644 --- a/src/common/logging/backend.h +++ b/src/common/logging/backend.h @@ -8,10 +8,13 @@ #include <memory> #include <string> #include <string_view> -#include "common/fs/file.h" #include "common/logging/filter.h" #include "common/logging/log.h" +namespace Common::FS { +class IOFile; +} + namespace Common::Log { class Filter; @@ -38,6 +41,7 @@ struct Entry { class Backend { public: virtual ~Backend() = default; + virtual void SetFilter(const Filter& new_filter) { filter = new_filter; } @@ -53,6 +57,8 @@ private: */ class ConsoleBackend : public Backend { public: + ~ConsoleBackend() override; + static const char* Name() { return "console"; } @@ -67,6 +73,8 @@ public: */ class ColorConsoleBackend : public Backend { public: + ~ColorConsoleBackend() override; + static const char* Name() { return "color_console"; } @@ -83,6 +91,7 @@ public: class FileBackend : public Backend { public: explicit FileBackend(const std::filesystem::path& filename); + ~FileBackend() override; static const char* Name() { return "file"; @@ -95,7 +104,7 @@ public: void Write(const Entry& entry) override; private: - FS::IOFile file; + std::unique_ptr<FS::IOFile> file; std::size_t bytes_written = 0; }; @@ -104,6 +113,8 @@ private: */ class DebuggerBackend : public Backend { public: + ~DebuggerBackend() override; + static const char* Name() { return "debugger"; } |