log.hxx
Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 #ifndef __LIBT2N_LOG
00023 #define __LIBT2N_LOG
00024 
00025 #include <iostream>
00026 #include <sstream>
00027 
00028 #define LOGGING
00029 
00030 #ifdef LOGGING
00031 
00032 #define LOGSTREAM(level,pipe) \
00033             do { \
00034                 std::ostream* streamptr; \
00035                 if ((streamptr=get_logstream(level))!=NULL) \
00036                     (*streamptr) << pipe << std::endl; \
00037             } while (0)
00038 
00039 #define OBJLOGSTREAM(obj,level,pipe) \
00040             do { \
00041                 std::ostream* streamptr; \
00042                 if ((streamptr=obj.get_logstream(level))!=NULL) \
00043                     (*streamptr) << pipe << std::endl; \
00044             } while (0)
00045 
00046 #define EXCEPTIONSTREAM(loglevel,exception,pipe) \
00047             do { \
00048                 std::ostringstream ostr; \
00049                 ostr << pipe; \
00050                 std::ostream* streamptr; \
00051                 if ((streamptr=get_logstream(loglevel))!=NULL) \
00052                     (*streamptr) << ostr.str() << std::endl; \
00053                 throw exception(ostr.str()); \
00054             } while (0)
00055 
00056 #else
00057 
00058 #define LOGSTREAM(level,pipe)
00059 #define OBJLOGSTREAM(obj,level,pipe)
00060 #define EXCEPTIONSTREAM(loglevel,exception,pipe)
00061 
00062 #endif
00063 
00064 #endif