NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
log_formatter.hpp
浏览该文件的文档.
1#ifndef NEFORCE_LOGGING_LOG_FORMATTER_HPP__
2#define NEFORCE_LOGGING_LOG_FORMATTER_HPP__
3
11
14NEFORCE_BEGIN_NAMESPACE__
15
21
39class NEFORCE_API log_formatter {
40private:
47 struct part {
48 bool is_placeholder;
49 string text;
50
51 part(const bool is_ph, string t) noexcept :
52 is_placeholder(is_ph),
53 text(_NEFORCE move(t)) {}
54
55 ~part() = default;
56
57 part(const part&) = default;
58 part& operator=(const part&) = default;
59
60 part(part&&) noexcept = default;
61 part& operator=(part&&) noexcept = default;
62 };
63 string pattern_;
64 vector<part> parts_;
65
71 void parse_pattern();
72
79 NEFORCE_NODISCARD string resolve_placeholder(string ph, const log_event& event) const;
80
81public:
86 explicit log_formatter(string pattern);
87
88 ~log_formatter() = default;
89
90 log_formatter(const log_formatter&) = default;
91 log_formatter& operator=(const log_formatter&) = default;
92
93 log_formatter(log_formatter&&) noexcept = default;
94 log_formatter& operator=(log_formatter&&) noexcept = default;
95
101 NEFORCE_NODISCARD string format(const log_event& event);
102};
103 // Logging
105
106NEFORCE_END_NAMESPACE__
107#endif // NEFORCE_LOGGING_LOG_FORMATTER_HPP__
string format(const log_event &event)
格式化日志事件
log_formatter(string pattern)
构造函数
动态大小数组容器
constexpr Iterator2 move(Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__move_aux(first, last, result)))
移动范围元素
日志事件定义
判断是否为占位符
日志事件结构体
动态大小数组容器