2 // Original: AliHLTLog.h,v 1.2 2004/06/11 16:06:33 loizides Exp $
7 // see below for class documentation
9 // refer to README to build package
11 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
15 #include "AliHLTLogging.h"
19 /** key to indicate the origin part */
20 #define AliHLTTPCLogKeyOrigin "__origin"
21 /** key to indicate the keyword part */
22 #define AliHLTTPCLogKeyKeyword "__key"
23 /** key to indicate the message part */
24 #define AliHLTTPCLogKeyMessage "__message"
28 * This class implements the old HLT TPC logging mechanism.
29 * Logging messages are now forwarded to the HLT logging system
30 * \em Note: the old LOG and ENDLOG macros should be used any longer,
31 * use the HLT logging macros or AliRoot logging macros instead.
36 enum TLogLevel { kNone = 0, kBenchmark=0x01,kDebug= 0x02, kInformational = 0x04, kWarning = 0x08, kError = 0x10 , kFatal = 0x20, kPrimary = 0x80, kAll = 0xBF };
40 static const char* kEnd; //! transient
42 static const char* kPrec; //! transient
44 /** stream manipulator for hex output, but empty in the implementation */
45 static const char* kHex; //! transient
46 /** stream manipulator for decimal output, but empty in the implementation */
47 static const char* kDec; //! transient
50 * Flush the stringstream and print output to the HLT logging system.
51 * The attributes are set before the message is streamed into the
53 * The LOG macro sets the attributes from the macro arguments and provides
54 * the stringstream.<br>
55 * The ENDLOG macro calls the Flush method after the message was streamed
56 * into the stringstream.
58 static const char* Flush();
63 static stringstream& GetStream() {return fgStream;}
66 * Get the logging level.
68 static TLogLevel GetLevel() {return fgLevel;}
71 /** a stringstream to receive the output */
72 static stringstream fgStream; // see above
74 /** the logging filter */
75 static TLogLevel fgLevel; // see above
77 /** HLT logging instance */
78 static AliHLTLogging fgHLTLogging; // see above
80 /** copy constructor prohibited */
81 AliHLTTPCLog(const AliHLTTPCLog&);
82 /** assignment operator prohibited */
83 AliHLTTPCLog& operator=(const AliHLTTPCLog&);
87 /** LOG macro to be used by the TPC code
88 * \em Note: this macro should be used any longer
90 #define LOG( lvl, origin, keyword ) \
91 if (lvl>=AliHLTTPCLog::GetLevel()) AliHLTTPCLog::GetStream() << lvl \
92 << " " << AliHLTTPCLogKeyOrigin << " " << origin \
93 << " " << AliHLTTPCLogKeyKeyword << " " << keyword \
94 << " " << AliHLTTPCLogKeyMessage << " "
96 /** ENDLOG macro calls the Flush method
97 * \em Note: this macro should be used any longer
99 #define ENDLOG AliHLTTPCLog::Flush()
101 #endif /* ALIHLTTPCLOG_H */