LeviLamina
Loading...
Searching...
No Matches
PatternFormatter.h
1#pragma once
2
3#include <array>
4#include <bitset>
5
6#include "ll/api/io/Formatter.h"
7
8#include "fmt/color.h"
9
10namespace ll::io {
12public:
13 std::string pattern;
14 std::bitset<4> bracketed;
15 bool colored;
16 std::array<std::array<fmt::text_style, 4>, 6> styles{
17 {
18 // {msg, tit, lvl, tm}
19 {{
20 fmt::fg(fmt::color::red) | fmt::emphasis::bold,
21 fmt::fg(fmt::color::red),
22 fmt::fg(fmt::color::red),
23 fmt::fg(fmt::color::light_blue),
24 }}, // Fatal
25 {{
26 fmt::fg(fmt::terminal_color::bright_red) | fmt::emphasis::bold,
27 fmt::fg(fmt::terminal_color::bright_red),
28 fmt::fg(fmt::terminal_color::bright_red),
29 fmt::fg(fmt::color::light_blue),
30 }}, // Error
31 {{
32 fmt::fg(fmt::terminal_color::bright_yellow) | fmt::emphasis::bold,
33 fmt::fg(fmt::terminal_color::bright_yellow),
34 fmt::fg(fmt::terminal_color::bright_yellow),
35 fmt::fg(fmt::color::light_blue),
36 }}, // Warn
37 {{{}, {}, fmt::fg(fmt::color::light_sea_green), fmt::fg(fmt::color::light_blue)}}, // Info
38 {{
39 fmt::fg(fmt::color::light_golden_rod_yellow) | fmt::emphasis::italic,
40 fmt::fg(fmt::color::light_golden_rod_yellow),
41 fmt::fg(fmt::color::light_golden_rod_yellow),
42 fmt::fg(fmt::color::light_blue),
43 }}, // Debug
44 {{
45 fmt::fg(fmt::color::light_steel_blue) | fmt::emphasis::italic,
46 fmt::fg(fmt::color::light_steel_blue),
47 fmt::fg(fmt::color::light_steel_blue),
48 fmt::fg(fmt::color::light_blue),
49 }}, // Trace
50 }
51 };
52
53 PatternFormatter(std::string pattern, bool colored = supportColorLog(), std::bitset<4> const& bracketed = 0)
54 : pattern(std::move(pattern)),
55 bracketed(bracketed),
56 colored(colored) {}
57
58 virtual ~PatternFormatter() = default;
59
60 LLAPI void format(LogMessageView const& view, std::string& buffer) const noexcept override;
61};
62} // namespace ll::io
Definition Formatter.h:7
Definition PatternFormatter.h:11
Definition buffer.h:5
Definition LogMessage.h:12