86 static constexpr size_t DEFAULT_BUFFER_SIZE = 100;
91 static constexpr std::chrono::milliseconds DEFAULT_FLUSH_INTERVAL{5000};
106 std::unique_ptr<log_writer_interface> wrapped,
107 size_t max_entries = DEFAULT_BUFFER_SIZE,
108 std::chrono::milliseconds flush_interval = DEFAULT_FLUSH_INTERVAL);
165 size_t get_buffer_count()
const;
174 size_t get_max_entries() const noexcept;
183 std::chrono::milliseconds get_flush_interval() const noexcept;
189 std::atomic<uint64_t> total_entries_written{0};
190 std::atomic<uint64_t> total_flushes{0};
191 std::atomic<uint64_t> flush_on_full{0};
192 std::atomic<uint64_t> flush_on_interval{0};
193 std::atomic<uint64_t> manual_flushes{0};
203 const stats& get_stats() const noexcept;
218 common::VoidResult flush_buffer_unsafe();
225 bool should_flush_by_time() const;
236 std::chrono::milliseconds flush_interval_;
238 mutable std::mutex mutex_;
240 std::chrono::steady_clock::time_point last_flush_time_;
Data structures for representing log entries and source locations kcenon.
Represents a single log entry with all associated metadata.