Safeheron-SGX-Native-Development-Framework v1.2.0
Loading...
Searching...
No Matches
ssgx_log_share.h
Go to the documentation of this file.
1#ifndef SAFEHERON_SGX_LOG_SHARE_H
2#define SAFEHERON_SGX_LOG_SHARE_H
3
4// namespace ssgx {
5// namespace log_t/log_u {
6
7enum class LogLevel {
8 TRACE = 0,
9 DEBUG = 1,
10 INFO = 2,
11 WARN = 3,
12 ERROR = 4,
13 FATAL = 5,
14 OFF = 6,
15};
16
17namespace internal {
18
19class LogFinisher;
20
21class LogMessage {
22 public:
23 LogMessage(LogLevel level, const char* filename, int line, const char* func_name);
24
25 ~LogMessage();
26
27 LogMessage& operator<<(const std::string& value);
28
29 LogMessage& operator<<(const char* value);
30
31 LogMessage& operator<<(char value);
32
33 LogMessage& operator<<(int value);
34
35 LogMessage& operator<<(long value);
36
37 LogMessage& operator<<(long long value);
38
39 LogMessage& operator<<(unsigned int value);
40
41 LogMessage& operator<<(unsigned long value);
42
43 LogMessage& operator<<(unsigned long long value);
44
45 LogMessage& operator<<(float value);
46
47 LogMessage& operator<<(double value);
48
49 LogMessage& operator<<(long double value);
50
51 private:
52 friend class LogFinisher;
53
54 void Finish();
55
56 LogLevel level_;
57 const char* filename_;
58 int line_;
59 const char* func_name_;
60 std::string message_;
61};
62
63class LogFinisher {
64 public:
65 void operator=(LogMessage& other);
66};
67
68} // namespace internal
69
70// } namespace log_t/log_u
71// } namespace ssgx
72
73#endif // SAFEHERON_SGX_LOG_SHARE_H
LogLevel
Definition ssgx_log_share.h:7