LeviLamina
Loading...
Searching...
No Matches
FileSink.h
1#pragma once
2
3#include <filesystem>
4#include <fstream>
5#include <mutex>
6
7#include "ll/api/io/Sink.h"
8
9namespace ll::io {
10class FileSink : public Sink {
11 std::ofstream file;
12 std::mutex mutex;
13 LogLevel flushLevel;
14
15public:
16 LLAPI
18 std::filesystem::path const& path,
19 Polymorphic<Formatter> formatter,
20 std::ios::openmode mode = std::ios::out
21 );
22
23 LLAPI ~FileSink() override;
24
25 LLAPI void setFormatter(Polymorphic<Formatter> fmter) override;
26
27 LLAPI void append(LogMessageView const& view) override;
28
29 LLAPI void flush() override;
30
31 LLAPI void setFlushLevel(LogLevel level) override;
32};
33} // namespace ll::io
Definition IndirectValue.h:47
Definition FileSink.h:10
Definition Sink.h:21
Definition LogMessage.h:12