All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
logging.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <stdarg.h>
4 #ifdef __linux__
5 #include <time.h>
6 #endif
7 
8 
9 
10 class CLogging
11 {
12 public:
13  enum EType
14  {
20  };
21 
22  enum EGLobal
23  {
25  };
26 
27  static void Log(EType eType, const char *pcMsg, ...)
28  {
29  va_list pArgs;
30  char cMessage[MESSAGE_SIZE];
31  char cLocalTime[24];
32 
33 #ifdef __linux__
34  time_t tRawTime;
35  struct tm * tTimeInfo;
36 
37  time (&tRawTime);
38  tTimeInfo = localtime (&tRawTime);
39  strftime (cLocalTime,sizeof(cLocalTime),"%F %T ",tTimeInfo);
40 #else
41  cLocalTime[0] = '\0';
42 #endif
43 
44  va_start(pArgs, pcMsg);
45  vsnprintf(cMessage, MESSAGE_SIZE, pcMsg, pArgs);
46  switch (eType)
47  {
48  case ERROR:
49  printf("%sERROR: %s\n", cLocalTime, cMessage);
50  break;
51  case WARNING:
52  printf("%sWARNING: %s\n", cLocalTime, cMessage);
53  break;
54  case INFO:
55  printf("%s%s\n", cLocalTime, cMessage);
56  break;
57  case DIAG:
58  // Should not be handles here, send to diagnostic class
59  printf("%sDIAG: %s\n", cLocalTime, cMessage);
60  break;
61  case TRACE:
62  printf("%sTRACE: %s\n", cLocalTime, cMessage);
63  break;
64  default: printf("Illegal log type\n");
65  }
66 
67  va_end(pArgs);
68  }
69 
70  static void Log(const char *pcMsg, ...)
71  {
72  va_list pArgs;
73  char cMessage[MESSAGE_SIZE];
74  char cLocalTime[24];
75 
76 #ifdef __linux__
77  time_t tRawTime;
78  struct tm * tTimeInfo;
79 
80  time (&tRawTime);
81  tTimeInfo = localtime (&tRawTime);
82  strftime (cLocalTime,sizeof(cLocalTime),"%F %T ",tTimeInfo);
83 #else
84  cLocalTime[0] = '\0';
85 #endif
86 
87  va_start(pArgs, pcMsg);
88  vsnprintf(cMessage, MESSAGE_SIZE, pcMsg, pArgs);
89  printf("%s%s\n", cLocalTime, cMessage);
90  va_end(pArgs);
91  }
92 
93 #ifdef __linux__
94  static void Time(bool bIncludeReturn)
95  {
96  time_t tRawTime;
97  struct tm * tTimeInfo;
98  char cLocalTime[80];
99 
100  time (&tRawTime);
101  tTimeInfo = localtime (&tRawTime);
102 
103  strftime (cLocalTime,80,"%F %T",tTimeInfo);
104  printf("%s", cLocalTime);
105  if (bIncludeReturn)
106  {
107  printf("\n");
108  }
109  }
110 #endif
111 
112 };
113 
114 
115 // I L o g g i n g
116 // ===============
117 //
118 class ILogging
119 {
120 public:
121  virtual void Log(CLogging::EType eType, const char *pcMsg, ...)
122  {
123  va_list pArgs;
124  char cMessage[CLogging::MESSAGE_SIZE];
125  va_start(pArgs, pcMsg);
126  vsnprintf(cMessage, CLogging::MESSAGE_SIZE, pcMsg, pArgs);
127  CLogging::Log("%s\n",cMessage);
128  va_end(pArgs);
129  }
130 };
131 
132 
static void Log(EType eType, const char *pcMsg,...)
Definition: logging.h:27
virtual void Log(CLogging::EType eType, const char *pcMsg,...)
Definition: logging.h:121
static void Log(const char *pcMsg,...)
Definition: logging.h:70