Logo
~Sockets~
~Examples~
~Contact~


StdoutLog Class Reference
[Log help classes]

StdLog implementation, logs to stdout. More...

#include <StdoutLog.h>

Inheritance diagram for StdoutLog:
Collaboration diagram for StdoutLog:

List of all members.


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

Detailed Description

StdLog implementation, logs to stdout.

Definition at line 45 of file StdoutLog.h.


Constructor & Destructor Documentation

StdoutLog::StdoutLog ( loglevel_t  min_level = LOG_LEVEL_INFO  )  [inline]

Definition at line 48 of file StdoutLog.h.

00048 : m_min_level(min_level) {}


Member Function Documentation

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 45 of file StdoutLog.cpp.

References LOG_LEVEL_ERROR, LOG_LEVEL_FATAL, LOG_LEVEL_INFO, LOG_LEVEL_WARNING, and m_min_level.

00046 {
00047         if (lvl < m_min_level)
00048                 return;
00049         char dt[40];
00050         time_t t = time(NULL);
00051 #ifdef __CYGWIN__
00052         struct tm *tp = localtime(&t);
00053         sprintf(dt, "%d-%02d-%02d %02d:%02d:%02d",
00054                 tp -> tm_year + 1900,
00055                 tp -> tm_mon + 1,
00056                 tp -> tm_mday,
00057                 tp -> tm_hour,tp -> tm_min,tp -> tm_sec);
00058 #else
00059         struct tm tp;
00060 #if defined( _WIN32) && !defined(__CYGWIN__)
00061         localtime_s(&tp, &t);
00062 #else
00063         localtime_r(&t, &tp);
00064 #endif
00065         sprintf(dt, "%d-%02d-%02d %02d:%02d:%02d",
00066                 tp.tm_year + 1900,
00067                 tp.tm_mon + 1,
00068                 tp.tm_mday,
00069                 tp.tm_hour,tp.tm_min,tp.tm_sec);
00070 #endif
00071         std::string level;
00072         
00073         switch (lvl)
00074         {
00075         case LOG_LEVEL_WARNING:
00076                 level = "Warning";
00077                 break;
00078         case LOG_LEVEL_ERROR:
00079                 level = "Error";
00080                 break;
00081         case LOG_LEVEL_FATAL:
00082                 level = "Fatal";
00083                 break;
00084         case LOG_LEVEL_INFO:
00085                 level = "Info";
00086                 break;
00087         }
00088         if (sock)
00089         {
00090                 printf("%s :: fd %d :: %s: %d %s (%s)\n",
00091                         dt,
00092                         sock -> GetSocket(),
00093                         call.c_str(),err,sys_err.c_str(),level.c_str());
00094         }
00095         else
00096         {
00097                 printf("%s :: %s: %d %s (%s)\n",
00098                         dt,
00099                         call.c_str(),err,sys_err.c_str(),level.c_str());
00100         }
00101 }


Member Data Documentation

Definition at line 52 of file StdoutLog.h.

Referenced by error().


The documentation for this class was generated from the following files:
Page, code, and content Copyright (C) 2007 by Anders Hedström
Generated for C++ Sockets by  doxygen 1.4.4