Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

osg::Log Class Reference
[Log]

#include <OSGLog.h>

List of all members.

Public Member Functions

Constructors
Log (LogType logType=LOG_STDERR, LogLevel logLevel=LOG_NOTICE)
 Log (const Char8 *fileName, LogLevel logLevel=LOG_NOTICE)
 Constructor which takes a log file name.
Destructors
*virtual ~Log (void)
Class Specific
*void lock (void)
void unlock (void)
Module Handling
*virtual void setHeaderElem (UInt32 elemMask, bool force=false)
 set method for attribute _headerElem
virtual void addHeaderElem (LogHeaderElem elem, bool force=false)
 add method for attribute _headerElem
virtual void delHeaderElem (LogHeaderElem elem, bool force=false)
 delete method for attribute _headerElem
virtual bool hasHeaderElem (LogHeaderElem elem)
 check for a single headerElem
virtual void addModuleHandling (LogModuleHandling handling, bool force=false)
 set method for attribute _headerElem
virtual void delModuleHandling (LogModuleHandling handling, bool force=false)
 set method for attribute _headerElem
virtual void addModuleName (const Char8 *module, bool isStatic=false)
 set method for attribute _headerElem
virtual void delModuleName (const Char8 *module)
 set method for attribute _headerElem
bool hasModule (const Char8 *module)
 set method for attribute _headerElem
bool checkModule (const Char8 *module)
 set method for attribute _headerElem
Level, Type and Time Handling
*LogType getLogType (void)
void setLogType (LogType logType, bool force=false)
 set method for attribute logType, checks OSG_LOG_TYPE env var if not forced.
LogLevel getLogLevel (void)
void setLogLevel (LogLevel logLevel, bool force=false)
 set method for attribute logLevel, checks OSG_LOG_LEVEL env var if not forced.
bool checkLevel (LogLevel logLevel)
void setLogFile (const Char8 *fileName, bool force=false)
 method to set and activate the log file, checks OSG_LOG_FILE env var if not forced
Time getRefTime (void)
void setRefTime (Time refTime)
void resetRefTime (void)
Stream Handling
*LogBufgetLogBuf (void)
std::ostream & stream (LogLevel level)
std::ostream & nilstream (void)
Logging
*std::ostream & doHeader (LogLevel level, const Char8 *module, const Char8 *file, UInt32 line)
void doLog (const Char8 *format,...)
 print for C-interface helper method

Protected Member Functions

Class Specific
*void connect (void)
 reconnects the streams for the current settings

Private Types

typedef std::ostream Inherited

Private Member Functions

Constructors
Log (const Log &source)
Operators
*void operator= (const Log &source)

Private Attributes

Static Fields
*LogType _logType
 holds the log type
LogLevel _logLevel
 holds the log level
std::fstream _fileStream
 file stream
LogBuf _logBuf
 holds the log type
LogOStream_streamVec [6]
 stream vector
UInt32 _headerElem
 holds the log type
UInt32 _moduleHandling
 holds the log type
std::list< Module_moduleList
 holds the log type
Time _refTime
 holds the log type

Static Private Attributes

Static Fields
*static nilbuf_nilbufP = NULL
 holds the nil buffer
static std::ostream * _nilstreamP = NULL
 holds the nil buffer
static const Char8_levelName []
 holds the nil buffer
static const Char8_levelColor []
 holds the nil buffer

Friends

void doInitLog (void)

Classes

struct  Module
struct  nilbuf


Detailed Description

Message logger class, handles info,warning and error messages

Definition at line 224 of file OSGLog.h.


Member Typedef Documentation

typedef std::ostream osg::Log::Inherited [private]
 

Definition at line 336 of file OSGLog.h.


Constructor & Destructor Documentation

Log::Log LogType  logType = LOG_STDERR,
LogLevel  logLevel = LOG_NOTICE
 

Definition at line 271 of file OSGLog.cpp.

References _nilbufP, _nilstreamP, _refTime, _streamVec, osg::getSystemTime(), osg::LOG_TYPE_HEADER, setHeaderElem(), and setLogLevel().

00271                                            :
00272      std::ostream  (_nilbufP == NULL ? 
00273                         _nilbufP = new Log::nilbuf() : _nilbufP), 
00274     _logType       (logType       ), 
00275     _logLevel      (logLevel      ), 
00276     _fileStream    (              ),
00277     _logBuf        (              ),
00278     _headerElem    (             0),
00279     _moduleHandling(LOG_MODULE_ALL)
00280 {   
00281     if(_nilstreamP == NULL)
00282         _nilstreamP = new std::ostream(_nilbufP);
00283 
00284     for(UInt32 i = 0; i < sizeof(_streamVec)/sizeof(LogOStream *); i++)
00285     {
00286 #ifdef OSG_HAS_NILBUF
00287         _streamVec[i] = new LogOStream(_nilbufP);
00288 #else
00289         _streamVec[i] = new LogOStream(_nilStreamP->rdbuf());
00290 #endif
00291     }
00292 
00293     setHeaderElem(LOG_TYPE_HEADER);
00294 
00295     _refTime = getSystemTime();
00296 
00297     setLogLevel(logLevel);
00298 }

Log::Log const Char8 fileName,
LogLevel  logLevel = LOG_NOTICE
 

Definition at line 303 of file OSGLog.cpp.

References _nilbufP, _nilstreamP, _refTime, _streamVec, osg::getSystemTime(), osg::LOG_TYPE_HEADER, setHeaderElem(), setLogFile(), and setLogLevel().

00303                                                  :
00304      std::ostream  (_nilbufP == NULL ? 
00305                         _nilbufP = new Log::nilbuf() : _nilbufP), 
00306     _logType       (LOG_FILE      ), 
00307     _logLevel      (logLevel      ), 
00308     _fileStream    (              ),
00309     _logBuf        (              ),
00310     _headerElem    (             0),
00311     _moduleHandling(LOG_MODULE_ALL)
00312 {
00313     if(_nilstreamP == NULL)
00314         _nilstreamP = new std::ostream(_nilbufP);
00315 
00316     for(UInt32 i = 0; i < sizeof(_streamVec)/sizeof(LogOStream *); i++)
00317     {
00318 #ifdef OSG_HAS_NILBUF
00319         _streamVec[i] = new LogOStream(_nilbufP);
00320 #else
00321         _streamVec[i] = new LogOStream(_nilStreamP->rdbuf());
00322 #endif
00323     }
00324 
00325     _refTime = getSystemTime();
00326 
00327     setHeaderElem(LOG_TYPE_HEADER);
00328     setLogFile   (fileName);
00329     setLogLevel  (logLevel);
00330 }

Log::~Log void   )  [virtual]
 

Definition at line 332 of file OSGLog.cpp.

References setLogFile().

00333 {
00334     setLogFile(NULL, true);
00335 }

* osg::Log::Log const Log source  )  [private]
 


Member Function Documentation

* void osg::Log::lock void   )  [inline]
 

Definition at line 252 of file OSGLog.h.

Referenced by osg::osgStartLog().

00252 {;} // TODO: implement

void osg::Log::unlock void   )  [inline]
 

Definition at line 253 of file OSGLog.h.

Referenced by osg::endLog().

00253 {;} // TODO: implement

void Log::setHeaderElem UInt32  elemMask,
bool  force = false
[virtual]
 

Definition at line 342 of file OSGLog.cpp.

References _headerElem, osg::endLog(), osg::osgLog(), and osg::osgLogP.

Referenced by addHeaderElem(), delHeaderElem(), and Log().

00343 {
00344     Char8 *env;
00345 
00346     if(!force && (this == osgLogP) && (env = getenv( "OSG_LOG_HEADER" )))
00347     {
00348         osgLog() << "Log::setHeaderElem: overriden by envvar OSG_LOG_HEADER '" 
00349                  << env << "'." << endLog;  
00350 
00351         elemMask = LogHeaderElem(atoi(env));
00352     }
00353 
00354     _headerElem = elemMask;
00355 }

void Log::addHeaderElem LogHeaderElem  elem,
bool  force = false
[virtual]
 

Definition at line 360 of file OSGLog.cpp.

References _headerElem, and setHeaderElem().

00361 {
00362     setHeaderElem((_headerElem | elem), force);
00363 }

void Log::delHeaderElem LogHeaderElem  elem,
bool  force = false
[virtual]
 

Definition at line 368 of file OSGLog.cpp.

References _headerElem, and setHeaderElem().

00369 {
00370     setHeaderElem((_headerElem & ~elem),force);
00371 }

bool Log::hasHeaderElem LogHeaderElem  elem  )  [virtual]
 

Definition at line 376 of file OSGLog.cpp.

References _headerElem.

00377 {
00378     return (_headerElem & elem) != 0;
00379 }

void Log::addModuleHandling LogModuleHandling  handling,
bool  force = false
[virtual]
 

Definition at line 381 of file OSGLog.cpp.

References _moduleHandling.

00383 {
00384     _moduleHandling |= handling;
00385 }

void Log::delModuleHandling LogModuleHandling  handling,
bool  force = false
[virtual]
 

Definition at line 387 of file OSGLog.cpp.

References _moduleHandling.

00389 {
00390     _moduleHandling &= ~handling;
00391 }

void Log::addModuleName const Char8 module,
bool  isStatic = false
[virtual]
 

Definition at line 393 of file OSGLog.cpp.

References _moduleList.

00394 {
00395     Module m;
00396     int    len;
00397 
00398     if(module && *module) 
00399     {
00400         _moduleList.push_back(m);
00401 
00402         if(isStatic) 
00403         {
00404             _moduleList.back().name     = module;
00405             _moduleList.back().isStatic = true;
00406         }
00407         else 
00408         {
00409             len = strlen(module);
00410 
00411             _moduleList.back().name = new Char8[len + 1];
00412 
00413             strcpy(const_cast<Char8 *>(_moduleList.back().name), module);
00414 
00415             _moduleList.back().isStatic = false;            
00416         }
00417     }
00418 }

void Log::delModuleName const Char8 module  )  [virtual]
 

Definition at line 420 of file OSGLog.cpp.

00421 {
00422 }

bool Log::hasModule const Char8 module  ) 
 

Definition at line 424 of file OSGLog.cpp.

References _moduleList.

Referenced by checkModule().

00425 {
00426     bool                        retCode = false;
00427     std::list<Module>::iterator mI;
00428 
00429     if(module && *module) 
00430     {
00431         for(  mI = _moduleList.begin();
00432               retCode || (mI != _moduleList.end()); 
00433             ++mI) 
00434         {
00435             retCode = (mI->isStatic) ? 
00436                 (module == mI->name) : (!strcmp(module,mI->name));
00437         }
00438     }
00439 
00440     return retCode;
00441 }

bool Log::checkModule const Char8 module  ) 
 

Definition at line 443 of file OSGLog.cpp.

References _moduleHandling, hasModule(), osg::LOG_MODULE_ALL, osg::LOG_MODULE_KNOWN, osg::LOG_MODULE_NONE, osg::LOG_MODULE_UNDEFINED, and osg::LOG_MODULE_UNKNOWN.

Referenced by osg::osgStartLog().

00444 {
00445     bool                        retCode = false;
00446     std::list<Module>::iterator mI;
00447 
00448     if(_moduleHandling != LOG_MODULE_NONE) 
00449     {
00450         if(_moduleHandling == LOG_MODULE_ALL) 
00451         {
00452             retCode = true;
00453         }
00454         else
00455         {
00456             if(module && &module) 
00457             {
00458                 if(hasModule(module))
00459                 {
00460                     if(_moduleHandling & LOG_MODULE_KNOWN)
00461                         retCode = true;
00462                 }
00463                 else 
00464                 {
00465                     if(_moduleHandling & LOG_MODULE_UNKNOWN)
00466                         retCode = true;
00467                 }
00468             }
00469             else
00470             {
00471                 if(_moduleHandling & LOG_MODULE_UNDEFINED)
00472                     retCode = true;
00473             }
00474         }
00475     }
00476 
00477     return retCode;
00478 }

LogType Log::getLogType void   ) 
 

Definition at line 481 of file OSGLog.cpp.

References _logType.

00482 { 
00483     return _logType; 
00484 }

void Log::setLogType LogType  logType,
bool  force = false
 

Definition at line 490 of file OSGLog.cpp.

References _logType, connect(), osg::LOG_BUFFER, osg::LOG_FILE, osg::LOG_NONE, osg::LOG_STDERR, osg::LOG_STDOUT, osg::osgLog(), osg::osgLogP, and osg::stringcasecmp().

00491 {
00492     static Char8   *typenames[] = 
00493     {
00494         "none", 
00495         "-",
00496         "stdout", 
00497         "stderr", 
00498         "file",
00499         "buffer",
00500         NULL
00501     };
00502 
00503     static LogType  types    [] = 
00504     {
00505         LOG_NONE, 
00506         LOG_STDOUT, 
00507         LOG_STDOUT, 
00508         LOG_STDERR, 
00509         LOG_FILE,
00510         LOG_BUFFER
00511     };
00512 
00513     static Int32 typeCount = sizeof(types) / sizeof(LogType);
00514 
00515     Char8 *et;
00516     Int32  lt;
00517     Int32  i;                               
00518 
00519     if(!force && (this == osgLogP) && (et = getenv("OSG_LOG_TYPE")))
00520     {
00521         osgLog() << "Log::setLogType: overriden by envvar OSG_LOG_TYPE '" 
00522                  << et << "'." << std::endl; 
00523 
00524         if(sscanf(et, "%d", &lt) != 1)
00525         {               
00526             for(i = 0; typenames[i]; i++)
00527             {
00528                 if(!stringcasecmp(et, typenames[i]))
00529                 {
00530                     _logType = types[i];
00531                     break;
00532                 }
00533             }
00534 
00535             if(! typenames[i])
00536             {
00537                 _logType = LOG_STDERR;
00538 
00539                 osgLog() << "Log::setLogType: couldn't interpret envvar, "
00540                          << "set to LOG_STDERR!" 
00541                          << std::endl; 
00542             }
00543         }
00544         else 
00545         {
00546             if(lt < 0)
00547             {
00548                 lt = 0;
00549             }
00550             else 
00551             {
00552                 if(lt >= typeCount)
00553                     lt = typeCount - 1;
00554             }
00555 
00556             _logType = types[lt];
00557         }
00558     }
00559     else
00560     {
00561         _logType = logType; 
00562     }
00563 
00564     connect(); 
00565 }

LogLevel Log::getLogLevel void   ) 
 

Definition at line 568 of file OSGLog.cpp.

References _logLevel.

Referenced by osg::DVRVolume::commonConstructor(), and osg::DVRVolume::findParameter().

00569 {
00570     return _logLevel; 
00571 }

void Log::setLogLevel LogLevel  logLevel,
bool  force = false
 

Definition at line 578 of file OSGLog.cpp.

References _logLevel, connect(), osg::LOG_DEBUG, osg::LOG_FATAL, osg::LOG_INFO, osg::LOG_LOG, osg::LOG_NOTICE, osg::LOG_WARNING, osg::osgLog(), osg::osgLogP, and osg::stringcasecmp().

Referenced by Log().

00579 { 
00580     static Char8    *levelnames[] = 
00581     {
00582         "log", 
00583         "fatal", 
00584         "warning", 
00585         "notice", 
00586         "info", 
00587         "debug", 
00588         NULL 
00589     };
00590 
00591     static LogLevel  levels    [] = 
00592     {
00593         LOG_LOG, 
00594         LOG_FATAL,
00595         LOG_WARNING, 
00596         LOG_NOTICE,
00597         LOG_INFO,
00598         LOG_DEBUG
00599     };
00600 
00601     static Int32 levelCount = sizeof(levels) / sizeof(LogLevel);
00602 
00603     Char8 *el;
00604     Int32  ll;
00605     Int32  i;                               
00606 
00607     if(!force && (this == osgLogP) && (el = getenv("OSG_LOG_LEVEL")))
00608     {
00609         osgLog() << "OSGLog::setLogLevel: overriden by envvar OSG_LOG_LEVEL '" 
00610                  << el << "'." << std::endl; 
00611 
00612         if(sscanf(el, "%d", &ll) != 1)
00613         {
00614             for(i = 0; levelnames[i]; i++)
00615             {
00616                 if(!stringcasecmp(el, levelnames[i]))
00617                 {
00618                     _logLevel = levels[i];
00619                     break;
00620                 }
00621             }
00622 
00623             if(! levelnames[i])
00624             {
00625                 _logLevel = LOG_DEBUG;
00626 
00627                 osgLog() << "Log::setLogLevel: couldn't interpret envvar, "
00628                          << "set to LOG_DEBUG!"
00629                          << std::endl; 
00630             }
00631         }
00632         else 
00633         {
00634             if (ll < 0)
00635             {
00636                 ll = 0;
00637             }
00638             else 
00639             {
00640                 if (ll >= levelCount)
00641                     ll = levelCount - 1;
00642             }
00643 
00644             _logLevel = levels[ll];
00645         }
00646     }
00647     else
00648     {
00649         _logLevel = logLevel; 
00650     }    
00651 
00652     connect() ; 
00653 }

bool osg::Log::checkLevel LogLevel  logLevel  )  [inline]
 

Definition at line 116 of file OSGLog.inl.

References _logLevel.

00117 {
00118     return (_logLevel >= level) ? true : false;
00119 }

void Log::setLogFile const Char8 fileName,
bool  force = false
 

Definition at line 660 of file OSGLog.cpp.

References _fileStream, _logType, connect(), osg::LOG_FILE, osg::osgLog(), and osg::osgLogP.

Referenced by Log(), and ~Log().

00661 {
00662     const Char8 *name;
00663 
00664 #ifdef OSG_STREAM_HAS_ISOPEN
00665     if(_fileStream.is_open())
00666 #else
00667     if(_fileStream.rdbuf()->is_open())
00668 #endif
00669     {
00670         _fileStream.close();
00671     }
00672 
00673     if(!force && (this == osgLogP) && (name = getenv("OSG_LOG_FILE"))) 
00674     {
00675         osgLog() << "Log::setLogFile: overriden by envvar OSG_LOG_FILE '" 
00676                  << name << "'." << std::endl;                            
00677     }
00678     else
00679     {
00680         name = fileName;
00681     }
00682 
00683     if(name && *name) 
00684     {
00685         _fileStream.open(name, std::ios::out);
00686 
00687 #ifdef OSG_STREAM_HAS_ISOPEN
00688         if(_fileStream.is_open()) 
00689 #else
00690         if(_fileStream.rdbuf()->is_open())
00691 #endif
00692         {
00693             _logType = LOG_FILE;
00694             connect();
00695         }
00696     }
00697 }

Time osg::Log::getRefTime void   )  [inline]
 

Definition at line 122 of file OSGLog.inl.

References _refTime.

00123 {
00124     return _refTime;
00125 }

void osg::Log::setRefTime Time  refTime  )  [inline]
 

Definition at line 128 of file OSGLog.inl.

References _refTime.

00129 {
00130     _refTime = refTime;
00131 }

void osg::Log::resetRefTime void   )  [inline]
 

Definition at line 134 of file OSGLog.inl.

References _refTime, and osg::getSystemTime().

00135 {
00136     _refTime = getSystemTime();
00137 }

LogBuf & osg::Log::getLogBuf void   )  [inline]
 

Definition at line 148 of file OSGLog.inl.

References _logBuf.

00149 {
00150   return _logBuf;
00151 }

std::ostream & osg::Log::stream LogLevel  level  )  [inline]
 

Definition at line 154 of file OSGLog.inl.

References _streamVec.

Referenced by osg::osgStartLog(), and osg::SceneFileType::print().

00155 {
00156     return *(_streamVec[level]); 
00157 }

std::ostream & osg::Log::nilstream void   )  [inline]
 

Definition at line 160 of file OSGLog.inl.

References _nilstreamP.

Referenced by osg::osgStartLog().

00161 {
00162     return *_nilstreamP;
00163 }

std::ostream & osg::Log::doHeader LogLevel  level,
const Char8 module,
const Char8 file,
UInt32  line
[inline]
 

Definition at line 166 of file OSGLog.inl.

References _headerElem, _levelColor, _levelName, _refTime, _streamVec, osg::getSystemTime(), osg::LOG_BEGIN_NEWLINE_HEADER, osg::LOG_COLOR_HEADER, osg::LOG_END_NEWLINE_HEADER, osg::LOG_FILE_HEADER, osg::LOG_LINE_HEADER, osg::LOG_MODULE_HEADER, osg::LOG_TAB_HEADER, osg::LOG_TIMESTAMP_HEADER, and osg::LOG_TYPE_HEADER.

Referenced by osg::osgStartLog().

00170 {
00171     LogOStream &sout = *(_streamVec[level]);
00172         const char *sep   = ( (_headerElem & LOG_TAB_HEADER) ? "\t" : ":" );
00173     const char *color = ( (_headerElem & LOG_COLOR_HEADER) ?
00174                            _levelColor[level] : 0 );
00175     const char *resetColor = "\x1b[0m";
00176     
00177     if(_headerElem) 
00178     {
00179         if(_headerElem & LOG_BEGIN_NEWLINE_HEADER)
00180             sout << std::endl;   
00181 
00182         if(_headerElem & LOG_TYPE_HEADER) 
00183         {
00184             if (color)
00185                 sout << color;          
00186             sout << _levelName[level] << sep;          
00187             if (color)
00188                 sout << resetColor;
00189         }
00190 
00191         if(_headerElem & LOG_TIMESTAMP_HEADER) 
00192             sout << (getSystemTime() - _refTime) << sep;
00193 
00194         if(module && *module && (_headerElem & LOG_MODULE_HEADER))
00195             sout << module << sep;
00196 
00197         if(file && *file && (_headerElem & LOG_FILE_HEADER)) 
00198         {
00199             sout << file;
00200 
00201             if(_headerElem & LOG_LINE_HEADER)
00202                 sout << ":" << line;
00203 
00204                         sout << sep;
00205         }
00206 
00207         if(_headerElem & LOG_END_NEWLINE_HEADER)
00208             sout << std::endl;   
00209         else
00210             sout << ' ';
00211     }
00212 
00213     return sout;
00214 }

void Log::doLog const Char8 format,
  ...
 

Definition at line 703 of file OSGLog.cpp.

00704 {
00705     Char8   buffer[4096];
00706     va_list args;
00707     
00708     va_start( args, format );
00709 
00710 #ifdef OSG_HAS_VSNPRINTF
00711     vsnprintf(buffer, sizeof(buffer) - 1, format, args);
00712 #else
00713     vsprintf(buffer, format, args);
00714 #endif
00715 
00716     //*this << buffer;
00717     //*this << std::flush;
00718     // Work around VC71. Patch by Chad Austin.
00719     std::ostream& os = *this;
00720     os << buffer;
00721     os << std::flush;
00722  
00723     va_end(args);
00724 }

void Log::connect void   )  [protected]
 

Definition at line 730 of file OSGLog.cpp.

References _fileStream, _logBuf, _logLevel, _logType, _nilbufP, _streamVec, osg::LOG_BUFFER, osg::LOG_FILE, osg::LOG_NONE, osg::LOG_STDERR, and osg::LOG_STDOUT.

Referenced by setLogFile(), setLogLevel(), and setLogType().

00731 {
00732     Int32 i;
00733 
00734 #ifndef OSG_STREAM_RDBUF_HAS_PARAM
00735     switch(_logType) 
00736     {
00737         case LOG_STDOUT:
00738             this->bp = std::cout.rdbuf();
00739             break;
00740         case LOG_STDERR:
00741             this->bp = std::cerr.rdbuf();
00742             break;
00743         case LOG_FILE:
00744             this->bp = _fileStream.rdbuf();
00745             break;
00746         case LOG_BUFFER:
00747             this->bp = _logBuf;
00748             break;
00749         case LOG_NONE:
00750         default:
00751             this->bp = _nilStreamP->rdbuf();
00752             break;
00753     }
00754 #else
00755     switch(_logType) 
00756     {
00757         case LOG_STDOUT:
00758             this->rdbuf(std::cout.rdbuf());
00759             break;
00760         case LOG_STDERR:
00761             this->rdbuf(std::cerr.rdbuf());
00762             break;
00763         case LOG_FILE:
00764             this->rdbuf(_fileStream.rdbuf());
00765             break;
00766         case LOG_BUFFER:
00767             this->rdbuf(&_logBuf);
00768             break;
00769         case LOG_NONE:
00770         default:
00771             this->rdbuf(_nilbufP);
00772             break;
00773     }
00774 #endif
00775 
00776     for(i = 0; i < int(sizeof(_streamVec)/sizeof(std::ostream*)); ++i) 
00777     {
00778         if (i <= _logLevel)
00779         {
00780             _streamVec[i]->setrdbuf(this->rdbuf());
00781         }
00782         else
00783         {
00784 #ifdef OSG_HAS_NILBUF
00785             _streamVec[i]->setrdbuf(_nilbufP);
00786 #else
00787             _streamVec[i]->setrdbuf(_nilStreamP->rdbuf());
00788 #endif
00789         }
00790     }
00791 }

* void osg::Log::operator= const Log source  )  [private]
 


Friends And Related Function Documentation

void doInitLog void   )  [friend]
 

Definition at line 818 of file OSGLog.cpp.

00819 {
00820 #ifdef OSG_HAS_NILBUF
00821     if(Log::_nilbufP == NULL)
00822         Log::_nilbufP = new Log::nilbuf();
00823 #else
00824     if(Log::_nilstreamP == NULL)
00825         Log::_nilstreamP = new std::fstream("/dev/null", std::ios::out);
00826 #endif
00827 
00828     if(osgLogP == NULL)
00829     {
00830         osgLogP = new Log();
00831 
00832         osgLogP->setLogLevel(OSG_DEFAULT_LOG_LEVEL);
00833         osgLogP->setLogFile (NULL                 );
00834         osgLogP->setLogType (OSG_DEFAULT_LOG_TYPE );
00835     }
00836 }


Member Data Documentation

Log::nilbuf * Log::_nilbufP = NULL [static, private]
 

Definition at line 246 of file OSGLog.cpp.

Referenced by connect(), and Log().

std::ostream * Log::_nilstreamP = NULL [static, private]
 

Definition at line 247 of file OSGLog.cpp.

Referenced by osg::doInitLog(), Log(), and nilstream().

const Char8 * Log::_levelName [static, private]
 

Initial value:

 
{
    "LOG", 
        "FATAL", 
        "WARNING", 
        "NOTICE", 
        "INFO", 
        "DEBUG", 
        0
}

Definition at line 249 of file OSGLog.cpp.

Referenced by doHeader().

const Char8 * Log::_levelColor [static, private]
 

Initial value:

 
{
    0,          
        "\x1b[31m", 
        "\x1b[33m", 
        0,          
        0,          
        0,          
        0
}

Definition at line 260 of file OSGLog.cpp.

Referenced by doHeader().

LogType Log::_logType [private]
 

Referenced by connect(), getLogType(), setLogFile(), and setLogType().

LogLevel Log::_logLevel [private]
 

Referenced by checkLevel(), connect(), getLogLevel(), and setLogLevel().

fstream Log::_fileStream [private]
 

Referenced by connect(), and setLogFile().

LogBuf osg::Log::_logBuf [private]
 

Definition at line 379 of file OSGLog.h.

Referenced by connect(), and getLogBuf().

LogOStream * Log::_streamVec[6] [private]
 

Referenced by connect(), doHeader(), Log(), and stream().

UInt32 osg::Log::_headerElem [private]
 

Definition at line 382 of file OSGLog.h.

Referenced by addHeaderElem(), delHeaderElem(), doHeader(),