Orocos Real-Time Toolkit
2.5.0
|
00001 #ifndef ORO_CORELIB_LOGGER_INL 00002 #define ORO_CORELIB_LOGGER_INL 00003 00012 namespace RTT 00013 { 00014 template< class T> 00015 Logger& Logger::operator<<( T t ) { 00016 #ifndef OROBLD_DISABLE_LOGGING 00017 if ( !mayLog() ) 00018 return *this; 00019 00020 os::MutexLock lock( inpguard ); 00021 if ( this->mayLogStdOut() ) 00022 logline << t; 00023 00024 #if defined(OROSEM_FILE_LOGGING) || defined(OROSEM_REMOTE_LOGGING) 00025 // log Info or better to log file, even if not started. 00026 if ( this->mayLogFile() ) 00027 fileline << t; 00028 #endif 00029 #endif 00030 return *this; 00031 } 00032 00033 #ifdef OROBLD_DISABLE_LOGGING 00034 00035 // instance will be actually null 00036 inline Logger& Logger::log() { 00037 return *_instance; 00038 } 00039 00040 inline Logger& Logger::log(LogLevel) { 00041 return *_instance; 00042 } 00043 00044 inline bool Logger::mayLog() const { 00045 return false; 00046 } 00047 00048 inline void Logger::mayLogStdOut(bool ) { 00049 } 00050 00051 inline void Logger::mayLogFile(bool ) { 00052 } 00053 00054 inline void Logger::allowRealTime() { 00055 } 00056 00057 inline void Logger::disallowRealTime() { 00058 } 00059 00060 inline std::ostream& 00061 Logger::nl(std::ostream& __os) 00062 { 00063 return __os; 00064 } 00065 00066 inline std::ostream& 00067 Logger::endl(std::ostream& __os) 00068 { 00069 return __os; 00070 } 00071 00072 inline std::ostream& 00073 Logger::flush(std::ostream& __os) 00074 { 00075 return __os; 00076 } 00077 00078 00079 inline Logger::In::In(const std::string&) 00080 { 00081 } 00082 00083 inline Logger::In::~In() 00084 { 00085 } 00086 00087 inline Logger& Logger::in(const std::string&) 00088 { 00089 return *this; 00090 } 00091 00092 inline Logger& Logger::out(const std::string&) 00093 { 00094 return *this; 00095 } 00096 00097 inline std::string Logger::getLogModule() const { 00098 return ""; 00099 } 00100 00101 inline void Logger::startup() { 00102 } 00103 00104 inline void Logger::shutdown() { 00105 } 00106 00107 inline std::string Logger::getLogLine() { 00108 return ""; 00109 } 00110 00111 inline void Logger::setStdStream( std::ostream& ) { 00112 } 00113 00114 inline Logger& Logger::operator<<( const std::string& ) { 00115 return *this; 00116 } 00117 00118 inline Logger& Logger::operator<<(LogLevel) { 00119 return *this; 00120 } 00121 00122 inline Logger& Logger::operator<<(std::ostream& (*pf)(std::ostream&)) 00123 { 00124 return *this; 00125 } 00126 00127 inline void Logger::logflush() { 00128 } 00129 00130 inline void Logger::lognl() { 00131 } 00132 00133 inline void Logger::logendl() { 00134 } 00135 00136 inline void Logger::setLogLevel( LogLevel ) { 00137 } 00138 00139 inline Logger::LogLevel Logger::getLogLevel() const { 00140 return Never; 00141 } 00142 #endif 00143 00144 } 00145 00146 #endif