#include <OSGLog.h>
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 | |
| *LogBuf & | getLogBuf (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 |
Definition at line 224 of file OSGLog.h.
|
|
|
|
||||||||||||
|
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 }
|
|
||||||||||||
|
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 }
|
|
|
Definition at line 332 of file OSGLog.cpp. References setLogFile(). 00333 { 00334 setLogFile(NULL, true); 00335 }
|
|
|
|
|
|
Definition at line 252 of file OSGLog.h. Referenced by osg::osgStartLog().
|
|
|
Definition at line 253 of file OSGLog.h. Referenced by osg::endLog().
|
|
||||||||||||
|
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 }
|
|
||||||||||||
|
Definition at line 360 of file OSGLog.cpp. References _headerElem, and setHeaderElem(). 00361 { 00362 setHeaderElem((_headerElem | elem), force); 00363 }
|
|
||||||||||||
|
Definition at line 368 of file OSGLog.cpp. References _headerElem, and setHeaderElem(). 00369 { 00370 setHeaderElem((_headerElem & ~elem),force); 00371 }
|
|
|
Definition at line 376 of file OSGLog.cpp. References _headerElem. 00377 { 00378 return (_headerElem & elem) != 0; 00379 }
|
|
||||||||||||
|
Definition at line 381 of file OSGLog.cpp. References _moduleHandling. 00383 { 00384 _moduleHandling |= handling; 00385 }
|
|
||||||||||||
|
Definition at line 387 of file OSGLog.cpp. References _moduleHandling. 00389 { 00390 _moduleHandling &= ~handling; 00391 }
|
|
||||||||||||
|
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 }
|
|
|
Definition at line 420 of file OSGLog.cpp.
|
|
|
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 }
|
|
|
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 }
|
|
|
Definition at line 481 of file OSGLog.cpp. References _logType. 00482 { 00483 return _logType; 00484 }
|
|
||||||||||||
|
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", <) != 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 }
|
|
|
Definition at line 568 of file OSGLog.cpp. References _logLevel. Referenced by osg::DVRVolume::commonConstructor(), and osg::DVRVolume::findParameter(). 00569 { 00570 return _logLevel; 00571 }
|
|
||||||||||||
|
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 }
|
|
|
Definition at line 116 of file OSGLog.inl. References _logLevel. 00117 { 00118 return (_logLevel >= level) ? true : false; 00119 }
|
|
||||||||||||
|
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 }
|
|
|
Definition at line 122 of file OSGLog.inl. References _refTime. 00123 { 00124 return _refTime; 00125 }
|
|
|
Definition at line 128 of file OSGLog.inl. References _refTime. 00129 { 00130 _refTime = refTime; 00131 }
|
|
|
Definition at line 134 of file OSGLog.inl. References _refTime, and osg::getSystemTime(). 00135 { 00136 _refTime = getSystemTime(); 00137 }
|
|
|
Definition at line 148 of file OSGLog.inl. References _logBuf. 00149 { 00150 return _logBuf; 00151 }
|
|
|
Definition at line 154 of file OSGLog.inl. References _streamVec. Referenced by osg::osgStartLog(), and osg::SceneFileType::print(). 00155 { 00156 return *(_streamVec[level]); 00157 }
|
|
|
Definition at line 160 of file OSGLog.inl. References _nilstreamP. Referenced by osg::osgStartLog(). 00161 { 00162 return *_nilstreamP; 00163 }
|
|
||||||||||||||||||||
|
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 }
|
|
||||||||||||
|
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 }
|
|
|
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 }
|
|
|
|
|
|
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 }
|
|
|
Definition at line 246 of file OSGLog.cpp. |
|
|
Definition at line 247 of file OSGLog.cpp. Referenced by osg::doInitLog(), Log(), and nilstream(). |
|
|
Initial value:
{
"LOG",
"FATAL",
"WARNING",
"NOTICE",
"INFO",
"DEBUG",
0
}
Definition at line 249 of file OSGLog.cpp. Referenced by doHeader(). |
|
|
Initial value:
{
0,
"\x1b[31m",
"\x1b[33m",
0,
0,
0,
0
}
Definition at line 260 of file OSGLog.cpp. Referenced by doHeader(). |
|
|
Referenced by connect(), getLogType(), setLogFile(), and setLogType(). |
|
|
Referenced by checkLevel(), connect(), getLogLevel(), and setLogLevel(). |
|
|
Referenced by connect(), and setLogFile(). |
|
|
Definition at line 379 of file OSGLog.h. Referenced by connect(), and getLogBuf(). |
|
|
Referenced by connect(), doHeader(), Log(), and stream(). |
|
|
Definition at line 382 of file OSGLog.h. Referenced by addHeaderElem(), delHeaderElem(), doHeader(), |