Jelajahi Sumber

log/backend: Use in-class initializer for FileBackend

We can also avoid redundant constructions of the same string repeatedly.
Lioncash 5 tahun lalu
induk
melakukan
6125590a7b
2 mengubah file dengan 8 tambahan dan 6 penghapusan
  1. 6 4
      src/common/logging/backend.cpp
  2. 2 2
      src/common/logging/backend.h

+ 6 - 4
src/common/logging/backend.cpp

@@ -148,12 +148,14 @@ void ColorConsoleBackend::Write(const Entry& entry) {
     PrintColoredMessage(entry);
 }
 
-FileBackend::FileBackend(const std::string& filename) : bytes_written(0) {
-    if (FS::Exists(filename + ".old.txt")) {
-        FS::Delete(filename + ".old.txt");
+FileBackend::FileBackend(const std::string& filename) {
+    const auto old_filename = filename + ".old.txt";
+
+    if (FS::Exists(old_filename)) {
+        FS::Delete(old_filename);
     }
     if (FS::Exists(filename)) {
-        FS::Rename(filename, filename + ".old.txt");
+        FS::Rename(filename, old_filename);
     }
 
     // _SH_DENYWR allows read only access to the file for other programs.

+ 2 - 2
src/common/logging/backend.h

@@ -94,8 +94,8 @@ public:
     void Write(const Entry& entry) override;
 
 private:
-    Common::FS::IOFile file;
-    std::size_t bytes_written;
+    FS::IOFile file;
+    std::size_t bytes_written = 0;
 };
 
 /**