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 #ifndef CSCDQM_Logger_H
00020 #define CSCDQM_Logger_H
00021
00022 #include <iostream>
00023 #include <iomanip>
00024
00025
00026 #include <FWCore/MessageLogger/interface/MessageLogger.h>
00027
00028 #ifdef DQMGLOBAL
00029
00030 #define LOG_DEBUG ((!edm::MessageDrop::instance()->debugEnabled) ? \
00031 cscdqm::LogDebugger(false) : cscdqm::LogDebugger())
00032
00033 #endif
00034
00035 #ifdef DQMLOCAL
00036
00037 #define LOG_DEBUG cscdqm::LogDebugger()
00038
00039 #endif
00040
00041 #define LOG_ERROR cscdqm::LogError()
00042 #define LOG_WARN cscdqm::LogWarn()
00043 #define LOG_INFO cscdqm::LogInfo()
00044 #define LOG_COUT cscdqm::LogCout()
00045
00046 namespace cscdqm {
00047
00052 class Logger { };
00053
00059 class LogInfo : public edm::LogInfo, public Logger {
00060 #ifdef DQMGLOBAL
00061 public: LogInfo() : edm::LogInfo("") { }
00062 #else
00063 public: LogInfo() : edm::LogInfo() { }
00064 #endif
00065 };
00066
00072 class LogWarn : public edm::LogWarning, public Logger {
00073 #ifdef DQMGLOBAL
00074 public: LogWarn() : edm::LogWarning("") { }
00075 #else
00076 public: LogWarn() : edm::LogWarning() { }
00077 #endif
00078 };
00079
00085 class LogError : public edm::LogError, public Logger {
00086 #ifdef DQMGLOBAL
00087 public: LogError() : edm::LogError("") { }
00088 #else
00089 public: LogError() : edm::LogError() { }
00090 #endif
00091 };
00092
00093 #ifdef DQMGLOBAL
00094
00100 class LogDebugger : public edm::LogDebug_, public Logger {
00101 public:
00102 LogDebugger() : edm::LogDebug_("", __FILE__, __LINE__) { }
00103 LogDebugger(const bool empty) : edm::LogDebug_() { }
00104 };
00105
00106 #endif
00107
00108 #ifdef DQMLOCAL
00109
00115 class LogDebugger : public edm::LogDebug, public Logger {
00116 public:
00117 LogDebugger() : edm::LogDebug() { }
00118 };
00119
00120 #endif
00121
00127 class LogCout : public Logger {
00128 public:
00129
00130 LogCout() { }
00131 ~LogCout() { std::cout << std::endl; }
00132
00133 template< class T >
00134 LogCout& operator<< (T const & t) {
00135 std::cout << t;
00136 return *this;
00137 }
00138
00139 LogCout& operator<< (std::ostream&(*f)(std::ostream&)) {
00140 std::cout << f;
00141 return *this;
00142 }
00143
00144 LogCout& operator<< (std::ios_base&(*f)(std::ios_base&) ) {
00145 std::cout << f;
00146 return *this;
00147 }
00148
00149 };
00150
00151 }
00152
00153 #endif