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 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 }


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