Minecraft Community Edition 0.1.0
Loading...
Searching...
No Matches
LoggerSinks.hpp
1#pragma once
2
3#include <fstream>
4#include <string>
5#include <string_view>
6
7#include <EABase/config/eacompilertraits.h>
8// Overriding literal operators is deprecated in C++17
9// EASTL still does this in some headers
10EA_DISABLE_GCC_WARNING(-Wdeprecated-literal-operator)
11#include <EASTL/string_view.h>
12
13namespace mce {
14 enum class LogLevel;
15
16 class LoggerSink {
17 public:
18 virtual ~LoggerSink() = default;
19 virtual void log(std::string_view prettyMessage, std::string_view basicMessage) = 0;
20 };
21
22 class StdoutSink final : public LoggerSink {
23 public:
24 void log(std::string_view prettyMessage, std::string_view basicMessage) override;
25 };
26
27 class FileSink final : public LoggerSink {
28 public:
29 explicit FileSink(std::string_view filename);
30
31 void log(std::string_view prettyMessage, std::string_view basicMessage) override;
32 private:
33 std::string filename;
34 std::ofstream file;
35 };
36}
Definition LoggerSinks.hpp:16
Definition LoggerSinks.hpp:22