Added the ability to truncate the basic file logger.

Added the ability to truncate the basic file logger.
This commit is contained in:
Sam Brkopac 2016-08-22 13:31:43 -07:00
parent 332b7c0d7f
commit 0be736c7fc
3 changed files with 9 additions and 8 deletions

View File

@ -36,14 +36,14 @@ inline void spdlog::drop(const std::string &name)
} }
// Create multi/single threaded simple file logger // Create multi/single threaded simple file logger
inline std::shared_ptr<spdlog::logger> spdlog::basic_logger_mt(const std::string& logger_name, const filename_t& filename, bool force_flush) inline std::shared_ptr<spdlog::logger> spdlog::basic_logger_mt(const std::string& logger_name, const filename_t& filename, bool force_flush, bool truncate)
{ {
return create<spdlog::sinks::simple_file_sink_mt>(logger_name, filename, force_flush); return create<spdlog::sinks::simple_file_sink_mt>(logger_name, filename, force_flush, truncate);
} }
inline std::shared_ptr<spdlog::logger> spdlog::basic_logger_st(const std::string& logger_name, const filename_t& filename, bool force_flush) inline std::shared_ptr<spdlog::logger> spdlog::basic_logger_st(const std::string& logger_name, const filename_t& filename, bool force_flush, bool truncate)
{ {
return create<spdlog::sinks::simple_file_sink_st>(logger_name, filename, force_flush); return create<spdlog::sinks::simple_file_sink_st>(logger_name, filename, force_flush, truncate);
} }
// Create multi/single threaded rotating file logger // Create multi/single threaded rotating file logger

View File

@ -30,10 +30,11 @@ class simple_file_sink : public base_sink < Mutex >
{ {
public: public:
explicit simple_file_sink(const filename_t &filename, explicit simple_file_sink(const filename_t &filename,
bool force_flush = false) : bool force_flush = false,
bool truncate = false) :
_file_helper(force_flush) _file_helper(force_flush)
{ {
_file_helper.open(filename); _file_helper.open(filename, truncate);
} }
void flush() override void flush() override
{ {

View File

@ -71,8 +71,8 @@ void set_sync_mode();
// //
// Create and register multi/single basic file logger // Create and register multi/single basic file logger
// //
std::shared_ptr<logger> basic_logger_mt(const std::string& logger_name, const filename_t& filename,bool force_flush = false); std::shared_ptr<logger> basic_logger_mt(const std::string& logger_name, const filename_t& filename,bool force_flush = false, bool truncate = false);
std::shared_ptr<logger> basic_logger_st(const std::string& logger_name, const filename_t& filename, bool force_flush = false); std::shared_ptr<logger> basic_logger_st(const std::string& logger_name, const filename_t& filename, bool force_flush = false, bool truncate = false);
// //
// Create and register multi/single threaded rotating file logger // Create and register multi/single threaded rotating file logger