append instead of truncate when opening new files
This commit is contained in:
		
							parent
							
								
									92f2b7556e
								
							
						
					
					
						commit
						fcd1fc037f
					
				@ -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:
 | 
				
			|||||||
        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:
 | 
				
			|||||||
                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;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user