]>
Commit | Line | Data |
---|---|---|
a6c02c85 | 1 | // @(#) $Id$ |
4aa41877 | 2 | // Original: AliHLTLog.h,v 1.2 2004/06/11 16:06:33 loizides Exp $ |
a6c02c85 | 3 | |
297174de | 4 | //* This file is property of and copyright by the ALICE HLT Project * |
5 | //* ALICE Experiment at CERN, All rights reserved. * | |
6 | //* See cxx source for full Copyright notice * | |
7 | ||
a6c02c85 | 8 | #ifndef ALIHLTTPCLOG_H |
9 | #define ALIHLTTPCLOG_H | |
10 | ||
fc455fba | 11 | #include <sstream> |
12 | #include <iostream> | |
13 | #include "AliHLTLogging.h" | |
db16520a | 14 | |
fc455fba | 15 | using namespace std; |
16 | ||
0df7eea7 | 17 | /** key to indicate the origin part */ |
18 | #define AliHLTTPCLogKeyOrigin "__origin" | |
19 | /** key to indicate the keyword part */ | |
20 | #define AliHLTTPCLogKeyKeyword "__key" | |
21 | /** key to indicate the message part */ | |
22 | #define AliHLTTPCLogKeyMessage "__message" | |
23 | ||
fc455fba | 24 | /** |
25 | * @class AliHLTTPCLog | |
26 | * This class implements the old HLT TPC logging mechanism. | |
27 | * Logging messages are now forwarded to the HLT logging system | |
28 | * \em Note: the old LOG and ENDLOG macros should be used any longer, | |
29 | * use the HLT logging macros or AliRoot logging macros instead. | |
30 | * @see AliHLTLogging | |
297174de | 31 | * |
32 | * @ingroup alihlt_tpc | |
fc455fba | 33 | */ |
34 | class AliHLTTPCLog { | |
a6c02c85 | 35 | public: |
055fed30 | 36 | enum TLogLevel { kNone = 0, kBenchmark=0x01,kDebug= 0x02, kInformational = 0x04, kWarning = 0x08, kError = 0x10 , kFatal = 0x20, kPrimary = 0x80, kAll = 0xBF }; |
fc455fba | 37 | |
6a8e0bb4 | 38 | private: |
fc455fba | 39 | /** not used */ |
40 | static const char* kEnd; //! transient | |
41 | /** not used */ | |
42 | static const char* kPrec; //! transient | |
6a8e0bb4 | 43 | public: |
fc455fba | 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 | |
48 | ||
fc455fba | 49 | /** |
50 | * Flush the stringstream and print output to the HLT logging system. | |
51 | * The attributes are set before the message is streamed into the | |
52 | * stringstream.<br> | |
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. | |
57 | */ | |
58 | static const char* Flush(); | |
e67b0680 | 59 | |
0df7eea7 | 60 | /** |
61 | * Get the stream. | |
62 | */ | |
63 | static stringstream& GetStream() {return fgStream;} | |
64 | ||
65 | /** | |
66 | * Get the logging level. | |
67 | */ | |
68 | static TLogLevel GetLevel() {return fgLevel;} | |
69 | ||
e67b0680 | 70 | private: |
0df7eea7 | 71 | /** a stringstream to receive the output */ |
72 | static stringstream fgStream; // see above | |
73 | ||
74 | /** the logging filter */ | |
75 | static TLogLevel fgLevel; // see above | |
76 | ||
77 | /** HLT logging instance */ | |
78 | static AliHLTLogging fgHLTLogging; // see above | |
79 | ||
e67b0680 | 80 | /** copy constructor prohibited */ |
81 | AliHLTTPCLog(const AliHLTTPCLog&); | |
82 | /** assignment operator prohibited */ | |
83 | AliHLTTPCLog& operator=(const AliHLTTPCLog&); | |
84 | ||
a6c02c85 | 85 | }; |
86 | ||
fc455fba | 87 | /** LOG macro to be used by the TPC code |
88 | * \em Note: this macro should be used any longer | |
89 | */ | |
a6c02c85 | 90 | #define LOG( lvl, origin, keyword ) \ |
0df7eea7 | 91 | if (lvl>=AliHLTTPCLog::GetLevel()) AliHLTTPCLog::GetStream() << lvl \ |
92 | << " " << AliHLTTPCLogKeyOrigin << " " << origin \ | |
93 | << " " << AliHLTTPCLogKeyKeyword << " " << keyword \ | |
94 | << " " << AliHLTTPCLogKeyMessage << " " | |
fc455fba | 95 | |
96 | /** ENDLOG macro calls the Flush method | |
97 | * \em Note: this macro should be used any longer | |
98 | */ | |
99 | #define ENDLOG AliHLTTPCLog::Flush() | |
100 | ||
a6c02c85 | 101 | #endif /* ALIHLTTPCLOG_H */ |