You.i Engine
YiLoggerCommon.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_LOGGER_COMMON_H_
3 #define _YI_LOGGER_COMMON_H_
4 
5 #include "framework/YiPredef.h"
6 #include "utility/YiString.h"
7 
8 #include <cstdarg>
9 
15 #if defined(YI_WIN32)
16 # define PRETTYFUNCTION_PLATFORM __FUNCTION__
17 #else
18 # define PRETTYFUNCTION_PLATFORM __PRETTY_FUNCTION__
19 #endif
20 
21 #if defined(YI_INCLUDE_TRACEINFO)
22 #define YI_TRACE_INFO __FILE__, PRETTYFUNCTION_PLATFORM, (uint32_t)__LINE__
23 #else
24 # define YI_TRACE_INFO "", "", 0
25 #endif
26 
27 #ifdef YI_DEBUG
28 #if !defined(__clang__) && defined(__GNUC__)
29 #define YI_LOG_CHECK_PARAMETERS(tag, msg, ...) \
30  { \
31  char YI_LOG_BUFFER[1152]; \
32  YI_SNPRINTF(YI_LOG_BUFFER, 1152, msg, ##__VA_ARGS__); \
33  }
34 #else
35 #define YI_LOG_CHECK_PARAMETERS(tag, msg, ...) \
36  { \
37  char YI_LOG_BUFFER[1]; \
38  YI_SNPRINTF(YI_LOG_BUFFER, 1, msg, ##__VA_ARGS__); \
39  }
40 #endif
41 #else
42 # define YI_LOG_CHECK_PARAMETERS(tag, msg, ...)
43 #endif
44 
52 {
59 };
60 
68 {
70  YI_LOGGING_PARAMS(const char *pTagName, bool bTagNameIsStatic = false);
72 
73  const char *GetTagName() const;
74 
75  const char *m_pModuleName;
76  const char *m_pPrettyFunction;
77  uint32_t m_unLineNumber;
78  const char *m_pOriginalLogMessage;
80  time_t m_time;
82  va_list m_varArgPtr;
84 
85 private:
86  const char *m_pTagName;
87  CYIString m_tagCopy;
88  bool m_bTagNameIsStatic;
89 };
90 
93 #endif // _YI_LOGGER_COMMON_H_
const char * m_pModuleName
Definition: YiLoggerCommon.h:75
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
Definition: YiLoggerCommon.h:57
Definition: YiLoggerCommon.h:53
YI_LOG_SEVERITY
Enumeration for the severity levels.
Definition: YiLoggerCommon.h:51
Data type to hold various bits of information for logging.
Definition: YiLoggerCommon.h:67
time_t m_time
Definition: YiLoggerCommon.h:80
Definition: YiLoggerCommon.h:58
va_list m_varArgPtr
Definition: YiLoggerCommon.h:82
Definition: YiLoggerCommon.h:56
const char * m_pOriginalLogMessage
Definition: YiLoggerCommon.h:78
const char * GetTagName() const
Definition: YiLoggerCommon.h:55
YI_LOG_SEVERITY m_eSeverity
Definition: YiLoggerCommon.h:79
const char * m_pPrettyFunction
Definition: YiLoggerCommon.h:76
CYIString m_formattedLogMessage
Definition: YiLoggerCommon.h:83
uint16_t m_uTimeMillisecondComponent
Definition: YiLoggerCommon.h:81
uint32_t m_unLineNumber
Definition: YiLoggerCommon.h:77
Definition: YiLoggerCommon.h:54