Orocos Real-Time Toolkit  2.5.0
Logger.inl
Go to the documentation of this file.
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