31 #ifndef LEDGER_CORE_ROTATINGENCRYPTABLESINK_HPP 32 #define LEDGER_CORE_ROTATINGENCRYPTABLESINK_HPP 34 #include "spdlog/spdlog.h" 35 #include "spdlog/sinks/sink.h" 36 #include "spdlog/sinks/basic_file_sink.h" 37 #include "api/ExecutionContext.hpp" 38 #include "api/PathResolver.hpp" 40 #include "utils/optional.hpp" 48 class RotatingEncryptableSink :
public spdlog::sinks::base_sink<std::mutex>,
public std::enable_shared_from_this<RotatingEncryptableSink> {
51 const std::shared_ptr<api::ExecutionContext> &context,
52 const std::shared_ptr<api::PathResolver> &resolver,
53 const std::string &name,
57 virtual void sink_it_(
const spdlog::details::log_msg &msg)
override;
58 virtual void flush_()
override;
61 void _sink_it(std::shared_ptr<fmt::memory_buffer> msg);
64 static spdlog::filename_t calc_filename(
65 std::shared_ptr<api::PathResolver> resolver,
66 const spdlog::filename_t& filename, std::size_t index,
const spdlog::filename_t& extension);
70 #if defined(_WIN32) || defined(_WIN64) 71 static void ToWide(
const std::string &input, std::wstring &output);
72 static void ToNarrow(
const std::wstring &input, std::string &output);
75 std::shared_ptr<api::ExecutionContext> _context;
76 std::weak_ptr<api::PathResolver> _resolver;
78 spdlog::filename_t _base_filename;
79 spdlog::filename_t _extension;
80 std::size_t _max_size;
81 std::size_t _max_files;
82 std::size_t _current_size;
83 spdlog::details::file_helper _file_helper;
89 #endif //LEDGER_CORE_ROTATINGENCRYPTABLESINK_HPP Definition: RotatingEncryptableSink.hpp:48
Definition: Account.cpp:8