Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
FileSink.h
1#pragma once
2
3#include <filesystem>
4#include <memory>
5
6#include "ll/api/io/RotatePolicy.h"
7#include "ll/api/io/Sink.h"
8
9namespace ll::io {
10
11class FileSink : public Sink {
12 struct Impl;
13 std::shared_ptr<Impl> impl;
14 LogLevel flushLevel{LogLevel::Off};
15
16public:
17 LLAPI
18 FileSink(
19 std::filesystem::path const& path,
20 Polymorphic<Formatter> formatter,
21 RotatePolicy policy = RotatePolicy::disabled()
22 );
23
24 LLAPI ~FileSink() override;
25
26 LLNDAPI static std::shared_ptr<FileSink> const& getDefault();
27
28 LLAPI void setFormatter(Polymorphic<Formatter> fmter) override;
29
30 LLAPI void append(LogMessageView const& view) override;
31
32 LLAPI void flush() override;
33
34 LLAPI void setFlushLevel(LogLevel level) override;
35
36 LLAPI void setPolicy(RotatePolicy policy);
37
38 LLAPI void rotate();
39};
40} // namespace ll::io
Definition RotatePolicy.h:38
Definition LogMessage.h:12