20 #ifndef __PSUTIL_LOG_H__ 21 #define __PSUTIL_LOG_H__ 24 #include "ivaria/reporter.h" 25 #include <iutil/vfs.h> 27 struct iConfigManager;
28 struct iObjectRegistry;
166 extern iObjectRegistry*
logger;
170 void LogMessage (
const char* file,
int line,
const char*
function,
171 int severity,
LOG_TYPES type, uint32 filter_id,
const char* msg, ...) CS_GNUC_PRINTF (7, 8);
173 void SetFlag(
const char *name,
bool flag, uint32 filter);
190 #define DoLogDebug(type) pslog::DoLog( CS_REPORTER_SEVERITY_DEBUG, type, 0) 191 #define DoLogDebug2(type,filter_id) pslog::DoLog( CS_REPORTER_SEVERITY_DEBUG, type, filter_id) 192 #define DoLogNotify(type) pslog::DoLog( CS_REPORTER_SEVERITY_NOTIFY, type, 0) 193 #define DoLogError(type) pslog::DoLog( CS_REPORTER_SEVERITY_ERROR, type, 0) 194 #define DoLogWarning(type) pslog::DoLog( CS_REPORTER_SEVERITY_WARNING, type, 0) 195 #define DoLogBug(type) pslog::DoLog( CS_REPORTER_SEVERITY_BUG, type, 0) 199 #define Debug(type, filter_id, ...) \ 200 { if (DoLogDebug2(type,filter_id)){ \ 201 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_DEBUG, type, filter_id, __VA_ARGS__ ); }} 202 #define Debug1(type, filter_id, a) \ 203 { if (DoLogDebug2(type,filter_id)){ \ 204 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_DEBUG, type, filter_id, a); }} 205 #define Debug2(type, filter_id, a,b) \ 206 { if (DoLogDebug2(type,filter_id)){ \ 207 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_DEBUG, type, filter_id, a, b); }} 208 #define Debug3(type, filter_id, a,b,c) \ 209 { if (DoLogDebug2(type,filter_id)){ \ 210 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_DEBUG, type, filter_id, a, b, c); }} 211 #define Debug4(type, filter_id, a,b,c,d) \ 212 { if (DoLogDebug2(type,filter_id)){ \ 213 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_DEBUG, type, filter_id, a, b, c, d); }} 214 #define Debug5(type, filter_id, a,b,c,d,e) \ 215 { if (DoLogDebug2(type,filter_id)){ \ 216 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_DEBUG, type, filter_id, a, b, c, d, e); }} 217 #define Debug6(type, filter_id, a,b,c,d,e,f) \ 218 { if (DoLogDebug2(type,filter_id)){ \ 219 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_DEBUG, type, filter_id, a, b, c, d, e, f); }} 220 #define Debug7(type, filter_id, a,b,c,d,e,f,g) \ 221 { if (DoLogDebug2(type,filter_id)){ \ 222 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_DEBUG, type, filter_id, a, b, c, d, e, f, g); }} 223 #define Debug8(type, filter_id, a,b,c,d,e,f,g,h) \ 224 { if (DoLogDebug2(type,filter_id)){ \ 225 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_DEBUG, type, filter_id, a, b, c, d, e, f, g, h); }} 227 #define Notify1(type, a) \ 228 { if (DoLogNotify(type)){ \ 229 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_NOTIFY, type, 0, a); }} 230 #define Notify2(type, a,b) \ 231 { if (DoLogNotify(type)){ \ 232 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_NOTIFY, type, 0, a, b); }} 233 #define Notify3(type, a,b,c) \ 234 { if (DoLogNotify(type)){ \ 235 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_NOTIFY, type, 0, a, b, c); }} 236 #define Notify4(type, a,b,c,d) \ 237 { if (DoLogNotify(type)){ \ 238 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_NOTIFY, type, 0, a, b, c, d); }} 239 #define Notify5(type, a,b,c,d,e) \ 240 { if (DoLogNotify(type)){ \ 241 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_NOTIFY, type, 0, a, b, c, d, e); }} 242 #define Notify6(type, a,b,c,d,e,f) \ 243 { if (DoLogNotify(type)){ \ 244 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_NOTIFY, type, 0, a, b, c, d, e, f); }} 245 #define Notify7(type, a,b,c,d,e,f,g) \ 246 { if (DoLogNotify(type)){ \ 247 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_NOTIFY, type, 0, a, b, c, d, e, f, g); }} 248 #define Notify8(type, a,b,c,d,e,f,g,h) \ 249 { if (DoLogNotify(type)){ \ 250 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_NOTIFY, type, 0, a, b, c, d, e, f, g, h, i); }} 251 #define Notify9(type, a,b,c,d,e,f,g,h,i) \ 252 { if (DoLogNotify(type)){ \ 253 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_NOTIFY, type, 0, a, b, c, d, e, f, g, h, i); }} 255 #define Warning1(type, a) \ 256 { if (DoLogWarning(type)){ \ 257 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_WARNING, type, 0, a); }} 258 #define Warning2(type, a,b) \ 259 { if (DoLogWarning(type)){ \ 260 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_WARNING, type, 0, a, b); }} 261 #define Warning3(type, a,b,c) \ 262 { if (DoLogWarning(type)){ \ 263 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_WARNING, type, 0, a, b, c); }} 264 #define Warning4(type, a,b,c,d) \ 265 { if (DoLogWarning(type)){ \ 266 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_WARNING, type, 0, a, b, c, d); }} 267 #define Warning5(type, a,b,c,d,e) \ 268 { if (DoLogWarning(type)){ \ 269 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_WARNING, type, 0, a, b, c, d, e); }} 270 #define Warning6(type, a,b,c,d,e,f) \ 271 { if (DoLogWarning(type)){ \ 272 pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_WARNING, type, 0, a, b, c, d, e, f); }} 275 { pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_ERROR, LOG_ANY, 0, a); } 276 #define Error2(a,b) \ 277 { pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_ERROR, LOG_ANY, 0, a, b); } 278 #define Error3(a,b,c) \ 279 { pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_ERROR, LOG_ANY, 0, a, b, c); } 280 #define Error4(a,b,c,d) \ 281 { pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_ERROR, LOG_ANY, 0, a, b, c, d); } 282 #define Error5(a,b,c,d,e) \ 283 { pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_ERROR, LOG_ANY, 0, a, b, c, d, e); } 284 #define Error6(a,b,c,d,e,f) \ 285 { pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_ERROR, LOG_ANY, 0, a, b, c, d, e, f); } 288 { pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_BUG, LOG_ANY, 0, a); } 290 { pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_BUG, LOG_ANY, 0, a, b); } 291 #define Bug3(a,b,c) \ 292 { pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_BUG, LOG_ANY, 0, a, b, c); } 293 #define Bug4(a,b,c,d) \ 294 { pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_BUG, LOG_ANY, 0, a, b, c, d); } 295 #define Bug5(a,b,c,d,e) \ 296 { pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_BUG, LOG_ANY, 0, a, b, c, d, e); } 297 #define Bug6(a,b,c,d,e,f) \ 298 { pslog::LogMessage (__FILE__, __LINE__, __FUNCTION__, CS_REPORTER_SEVERITY_BUG, LOG_ANY, 0, a, b, c, d, e, f); } 309 void StartLog(
const char* logfile, iVFS* vfs,
const char* header,
size_t maxSize, csRef<iFile>& csvFile);
312 LogCSV(iConfigManager* configmanager, iVFS* vfs);
313 void Write(
int type, csString& text);
bool DoLog(int severity, LOG_TYPES type, uint32 filter_id)
bool disp_flag[MAX_FLAGS]
const char * GetSettingName(int id)
const char * GetName(int id)
void SetFlag(const char *name, bool flag, uint32 filter)
void void Initialize(iObjectRegistry *object_reg)
void DisplayFlags(const char *name=NULL)
bool GetValue(const char *name)
void LogMessage(const char *file, int line, const char *function, int severity, LOG_TYPES type, uint32 filter_id, const char *msg,...) CS_GNUC_PRINTF(7