plugify 1.2.6
Loading...
Searching...
No Matches
log.hpp
1#pragma once
2
3#include <cstdint>
4#include <string_view>
5
6namespace plugify {
11 enum class Severity {
12 None = 0,
13 Fatal = 1,
14 Error = 2,
15 Warning = 3,
16 Info = 4,
17 Debug = 5,
18 Verbose = 6,
19 };
20
25 class ILogger {
26 public:
27 virtual ~ILogger() = default;
28
34 virtual void Log(std::string_view msg, Severity severity) = 0;
35 };
36
40 namespace SeverityUtils {
46 constexpr std::string_view ToString(Severity severity) noexcept {
47 switch (severity) {
48 case Severity::Fatal: return "Fatal";
49 case Severity::Error: return "Error";
50 case Severity::Warning: return "Warning";
51 case Severity::Info: return "Info";
52 case Severity::Debug: return "Debug";
53 case Severity::Verbose: return "Verbose";
54 default: return "None";
55 }
56 }
57
63 constexpr Severity FromString(std::string_view severity) noexcept {
64 if (severity == "Fatal") {
65 return Severity::Fatal;
66 } else if (severity == "Error") {
67 return Severity::Error;
68 } else if (severity == "Warning") {
69 return Severity::Warning;
70 } else if (severity == "Info") {
71 return Severity::Info;
72 } else if (severity == "Debug") {
73 return Severity::Debug;
74 } else if (severity == "Verbose") {
75 return Severity::Verbose;
76 }
77 return Severity::None;
78 }
79 } // namespace SeverityUtils
80
81} // namespace plugify
Interface for logging messages with different severity levels.
Definition log.hpp:25
virtual void Log(std::string_view msg, Severity severity)=0
Log a message with the specified severity level.
constexpr std::string_view ToString(Severity severity) noexcept
Convert a Severity enum value to its string representation.
Definition log.hpp:46
constexpr Severity FromString(std::string_view severity) noexcept
Convert a string representation to a Severity enum value.
Definition log.hpp:63