00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef TGO4LOG_H
00015 #define TGO4LOG_H
00016
00017 #include "TString.h"
00018
00019 class TMutex;
00020
00021 #define __MESSAGETEXTLENGTH__ 1024
00022
00023
00024 #define TRACE(X) ;
00025
00026
00027 #define GO4MESSAGE( X ) TGo4Log::Message X;
00028 #define GO4INFO(X) TGo4Log::Info X ;
00029 #define GO4WARN(X) TGo4Log::Warn X ;
00030 #define GO4ERROR(X) TGo4Log::Error X ;
00031
00040 #ifdef __CINT__
00041
00042 class TGo4Log {
00043
00044 #else
00045
00046 #ifdef GO4_EXPORT
00047 #define TGO4LOG_CLASS_IMPORT __declspec(dllimport)
00048 #else
00049 #define TGO4LOG_CLASS_IMPORT
00050 #endif
00051
00052 class TGO4LOG_CLASS_IMPORT TGo4Log {
00053
00054 #endif
00055
00056 public:
00057 static TGo4Log *Instance();
00058
00062 static const char* GO4SYS();
00063
00066 static TString subGO4SYS(const char* subdir);
00067
00069 static void SetIgnoreLevel(Int_t level);
00070
00072 static Int_t GetIgnoreLevel();
00073
00075 static void OutputEnable(Bool_t on=kTRUE);
00076
00078 static Bool_t IsOutputEnabled();
00079
00081 static void LogfileEnable(Bool_t on=kTRUE);
00082
00084 static Bool_t IsLogfileEnabled();
00085
00087 static void AutoEnable(Bool_t on=kTRUE);
00088
00090 static Bool_t IsAutoEnabled();
00091
00096 static void OpenLogfile(const char* name=0,
00097 const char* headercomment=0,
00098 Bool_t appendmode=kFALSE);
00099
00101 static void CloseLogfile();
00102
00104 static const char* GetLogname();
00105
00112 static const char* Message(Int_t prio, const char* text,...);
00113
00115 static void Debug(const char* text,...);
00116
00118 static void Info(const char* text,...);
00119
00121 static void Warn(const char* text,...);
00122
00124 static void Error(const char* text,...);
00125
00128 static void WriteLogfile(const char* text, Bool_t withtime=kTRUE);
00129
00131 static void set_trace_level(int) {}
00132
00134 static void SetTracePriority(int) {}
00135
00137 static void StartTracing() { Instance(); SetIgnoreLevel(0); }
00138
00140 static void StopTracing() { Instance(); SetIgnoreLevel(1); }
00141
00142 static const char* GetDefaultLogname();
00143
00145 static const char* fgcLEFT;
00146
00148 static const char* fgcRIGHT;
00149
00151 static const char* fgcDEBUG;
00152
00154 static const char* fgcINFO;
00155
00157 static const char* fgcWARN;
00158
00160 static const char* fgcERR;
00161
00163 static const char* fgcDEFAULTLOG;
00164
00166 enum { fguMESLEN = __MESSAGETEXTLENGTH__ };
00167
00168 virtual ~TGo4Log();
00169
00170 private:
00171 TGo4Log();
00172
00173 static TGo4Log* fgxInstance;
00174
00176 static TMutex* fgxMutex;
00177
00179 static Int_t fgiIgnoreLevel;
00180
00182 static Bool_t fgbOutputEnabled;
00183
00185 static Bool_t fgbLogfileEnabled;
00186
00188 static Bool_t fgbAutoMode;
00189
00191 static char fgcMessagetext[__MESSAGETEXTLENGTH__];
00192
00194 static void* fgxLogfile;
00195
00197 static TString fgxLogName;
00198
00199 static TString fgsGO4SYS;
00200
00201 ClassDef(TGo4Log,1)
00202 };
00203
00204
00205 typedef TGo4Log TGo4Trace;
00206
00207 #endif //TGO4LOG_H