Commit fcd1fc03 authored by gabime's avatar gabime

append instead of truncate when opening new files

parent 92f2b755
...@@ -63,15 +63,15 @@ public: ...@@ -63,15 +63,15 @@ public:
} }
void open(const std::string& fname) void open(const std::string& fname, bool truncate=false)
{ {
close(); close();
const char* mode = truncate ? "wb" : "ab";
_filename = fname; _filename = fname;
for (int tries = 0; tries < open_tries; ++tries) for (int tries = 0; tries < open_tries; ++tries)
{ {
if(!os::fopen_s(&_fd, fname, "wb")) if(!os::fopen_s(&_fd, fname, mode))
return; return;
std::this_thread::sleep_for(std::chrono::milliseconds(open_interval)); std::this_thread::sleep_for(std::chrono::milliseconds(open_interval));
...@@ -80,11 +80,11 @@ public: ...@@ -80,11 +80,11 @@ public:
throw spdlog_ex("Failed opening file " + fname + " for writing"); throw spdlog_ex("Failed opening file " + fname + " for writing");
} }
void reopen() void reopen(bool truncate)
{ {
if(_filename.empty()) if(_filename.empty())
throw spdlog_ex("Failed re opening file - was not opened before"); throw spdlog_ex("Failed re opening file - was not opened before");
open(_filename); open(_filename, truncate);
} }
......
...@@ -135,7 +135,7 @@ private: ...@@ -135,7 +135,7 @@ private:
throw spdlog_ex("rotating_file_sink: failed renaming " + src + " to " + target); throw spdlog_ex("rotating_file_sink: failed renaming " + src + " to " + target);
} }
} }
_file_helper.reopen(); _file_helper.reopen(true);
} }
std::string _base_filename; std::string _base_filename;
std::string _extension; std::string _extension;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment