![]() |
StdoutLog Class ReferenceStdLog implementation, logs to stdout.
More...
|
Public Member Functions | |
StdoutLog (loglevel_t min_level=LOG_LEVEL_INFO) | |
void | error (ISocketHandler *, Socket *, const std::string &call, int err, const std::string &sys_err, loglevel_t) |
Private Attributes | |
loglevel_t | m_min_level |
Definition at line 45 of file StdoutLog.h.
StdoutLog::StdoutLog | ( | loglevel_t | min_level = LOG_LEVEL_INFO |
) | [inline] |
void StdoutLog::error | ( | ISocketHandler * | , | |
Socket * | sock, | |||
const std::string & | call, | |||
int | err, | |||
const std::string & | sys_err, | |||
loglevel_t | lvl | |||
) | [virtual] |
Implements StdLog.
Definition at line 46 of file StdoutLog.cpp.
References LOG_LEVEL_ERROR, LOG_LEVEL_FATAL, LOG_LEVEL_INFO, LOG_LEVEL_WARNING, and m_min_level.
00047 { 00048 if (lvl < m_min_level) 00049 return; 00050 char dt[40]; 00051 time_t t = time(NULL); 00052 #ifdef __CYGWIN__ 00053 struct tm *tp = localtime(&t); 00054 sprintf(dt, "%d-%02d-%02d %02d:%02d:%02d", 00055 tp -> tm_year + 1900, 00056 tp -> tm_mon + 1, 00057 tp -> tm_mday, 00058 tp -> tm_hour,tp -> tm_min,tp -> tm_sec); 00059 #else 00060 struct tm tp; 00061 #if defined( _WIN32) && !defined(__CYGWIN__) 00062 localtime_s(&tp, &t); 00063 #else 00064 localtime_r(&t, &tp); 00065 #endif 00066 sprintf(dt, "%d-%02d-%02d %02d:%02d:%02d", 00067 tp.tm_year + 1900, 00068 tp.tm_mon + 1, 00069 tp.tm_mday, 00070 tp.tm_hour,tp.tm_min,tp.tm_sec); 00071 #endif 00072 std::string level; 00073 00074 switch (lvl) 00075 { 00076 case LOG_LEVEL_WARNING: 00077 level = "Warning"; 00078 break; 00079 case LOG_LEVEL_ERROR: 00080 level = "Error"; 00081 break; 00082 case LOG_LEVEL_FATAL: 00083 level = "Fatal"; 00084 break; 00085 case LOG_LEVEL_INFO: 00086 level = "Info"; 00087 break; 00088 } 00089 if (sock) 00090 { 00091 printf("%s :: fd %d :: %s: %d %s (%s)\n", 00092 dt, 00093 sock -> GetSocket(), 00094 call.c_str(),err,sys_err.c_str(),level.c_str()); 00095 } 00096 else 00097 { 00098 printf("%s :: %s: %d %s (%s)\n", 00099 dt, 00100 call.c_str(),err,sys_err.c_str(),level.c_str()); 00101 } 00102 }
loglevel_t StdoutLog::m_min_level [private] |