NexusForce
1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
log_event.hpp
浏览该文件的文档.
1
#ifndef NEFORCE_LOGGING_LOG_EVENT_HPP__
2
#define NEFORCE_LOGGING_LOG_EVENT_HPP__
3
11
12
#include "
NeForce/core/async/thread.hpp
"
13
#include "
NeForce/core/container/unordered_map.hpp
"
14
#include "
NeForce/core/exception/source_location.hpp
"
15
#include "
NeForce/core/memory/shared_ptr.hpp
"
16
#include "
NeForce/core/time/datetime.hpp
"
17
#ifdef ERROR
18
# undef ERROR
19
#endif
20
NEFORCE_BEGIN_NAMESPACE__
21
36
37
#define NEFORCE_LOG_LEVEL_TRACE 0
38
#define NEFORCE_LOG_LEVEL_DEBUG 1
39
#define NEFORCE_LOG_LEVEL_INFO 2
40
#define NEFORCE_LOG_LEVEL_WARN 3
41
#define NEFORCE_LOG_LEVEL_ERROR 4
42
#define NEFORCE_LOG_LEVEL_FATAL 5
43
#define NEFORCE_LOG_LEVEL_OFF 6
44
51
enum class
log_level
:
uint8_t
{
52
TRACE
= NEFORCE_LOG_LEVEL_TRACE,
53
DEBUG
= NEFORCE_LOG_LEVEL_DEBUG,
54
INFO
= NEFORCE_LOG_LEVEL_INFO,
55
WARN
= NEFORCE_LOG_LEVEL_WARN,
56
ERROR
= NEFORCE_LOG_LEVEL_ERROR,
57
FATAL
= NEFORCE_LOG_LEVEL_FATAL,
58
OFF
= NEFORCE_LOG_LEVEL_OFF
59
};
60
69
#ifndef NEFORCE_ACTIVE_LOG_LEVEL
70
# ifdef NDEBUG
71
# define NEFORCE_ACTIVE_LOG_LEVEL NEFORCE_LOG_LEVEL_INFO
72
# else
73
# define NEFORCE_ACTIVE_LOG_LEVEL NEFORCE_LOG_LEVEL_TRACE
74
# endif
75
#endif
76
82
NEFORCE_CONSTEXPR20
string
to_string
(
const
log_level
level) {
83
switch
(level) {
84
case
log_level::TRACE
:
85
return
"TRACE"
;
86
case
log_level::DEBUG
:
87
return
"DEBUG"
;
88
case
log_level::INFO
:
89
return
"INFO"
;
90
case
log_level::WARN
:
91
return
"WARN"
;
92
case
log_level::ERROR
:
93
return
"ERROR"
;
94
case
log_level::FATAL
:
95
return
"FATAL"
;
96
case
log_level::OFF
:
97
return
"OFF"
;
98
default
:
99
unreachable
();
100
}
101
}
102
103
110
enum class
overflow_policy
:
uint8_t
{
111
block
,
112
discard
,
113
overrun_oldest
114
};
115
116
124
class
NEFORCE_API
mdc
{
125
private
:
126
static
unordered_map<string, string>
& storage();
127
128
public
:
134
static
void
put
(
const
string
& key,
string
value);
135
141
static
string
get
(
const
string
& key);
142
147
static
void
remove
(
const
string
& key);
148
150
static
void
clear
();
151
156
static
bool
empty
();
157
162
static
unordered_map<string, string>
snapshot
();
163
};
164
165
173
struct
log_event
{
174
shared_ptr<unordered_map<string, string>
>
context
;
175
string
message
;
176
string
logger_name
;
177
datetime
dt
;
178
source_location
loc
;
179
thread::id
thread_id
;
180
log_level
level
;
181
};
182
// Logging
184
185
NEFORCE_END_NAMESPACE__
186
#endif
// NEFORCE_LOGGING_LOG_EVENT_HPP__
neforce::datetime
日期时间类
定义
datetime.hpp:734
neforce::mdc
Mapped Diagnostic Context,线程局部上下文
定义
log_event.hpp:124
neforce::mdc::empty
static bool empty()
检查当前线程的 MDC 是否为空
neforce::mdc::snapshot
static unordered_map< string, string > snapshot()
获取当前线程 MDC 的快照
neforce::mdc::clear
static void clear()
清除当前线程的所有 MDC 数据
neforce::mdc::remove
static void remove(const string &key)
移除指定的键
neforce::mdc::put
static void put(const string &key, string value)
设置键值对
neforce::mdc::get
static string get(const string &key)
获取键对应的值
neforce::shared_ptr
共享智能指针类模板
定义
shared_ptr.hpp:270
neforce::unordered_map
无序映射容器
定义
unordered_map.hpp:38
datetime.hpp
日期时间处理库
neforce::uint8_t
unsigned char uint8_t
8位无符号整数类型
定义
typeinfo/types.hpp:97
neforce::unreachable
void unreachable() noexcept
标记不可达代码路径
定义
debug.hpp:68
neforce::log_level
log_level
日志级别枚举
定义
log_event.hpp:51
neforce::overflow_policy
overflow_policy
异步队列溢出策略
定义
log_event.hpp:110
neforce::log_level::FATAL
@ FATAL
致命级别
定义
log_event.hpp:57
neforce::log_level::TRACE
@ TRACE
跟踪级别
定义
log_event.hpp:52
neforce::log_level::WARN
@ WARN
警告级别
定义
log_event.hpp:55
neforce::log_level::INFO
@ INFO
信息级别
定义
log_event.hpp:54
neforce::log_level::OFF
@ OFF
关闭所有日志
定义
log_event.hpp:58
neforce::log_level::ERROR
@ ERROR
错误级别
定义
log_event.hpp:56
neforce::log_level::DEBUG
@ DEBUG
调试级别
定义
log_event.hpp:53
neforce::overflow_policy::block
@ block
阻塞等待直到队列有空间
定义
log_event.hpp:111
neforce::overflow_policy::overrun_oldest
@ overrun_oldest
丢弃队列中最旧的事件,为新事件腾出空间
定义
log_event.hpp:113
neforce::overflow_policy::discard
@ discard
丢弃新事件
定义
log_event.hpp:112
neforce::to_string
constexpr string to_string(const CharT &c)
将字符转换为普通字符串
定义
icharacter.hpp:115
shared_ptr.hpp
共享智能指针实现
source_location.hpp
源码位置信息工具
neforce::log_event
日志事件结构体
定义
log_event.hpp:173
neforce::log_event::loc
source_location loc
源码位置
定义
log_event.hpp:178
neforce::log_event::context
shared_ptr< unordered_map< string, string > > context
上下文(Logger + MDC)
定义
log_event.hpp:174
neforce::log_event::level
log_level level
日志级别
定义
log_event.hpp:180
neforce::log_event::logger_name
string logger_name
产生此事件的 Logger 名称
定义
log_event.hpp:176
neforce::log_event::thread_id
thread::id thread_id
产生此事件的线程 ID
定义
log_event.hpp:179
neforce::log_event::message
string message
格式化后的日志消息
定义
log_event.hpp:175
neforce::log_event::dt
datetime dt
事件时间戳
定义
log_event.hpp:177
neforce::source_location
源码位置信息
定义
source_location.hpp:23
neforce::thread::id
线程唯一标识符类
定义
thread.hpp:72
thread.hpp
线程管理类
unordered_map.hpp
无序映射容器
include
NeForce
logging
log_event.hpp
制作者
1.16.0