/* * Copyright 1995, 1996 Perforce Software. All rights reserved. */ /* * ErrorLog.h - report layered errors * * Class Defined: * * ErrorLog - write errors to log/syslog (static) * * Public methods: * * ErrorLog::Report() - blurt out the contents of the Error to stderr * ErrorLog::Abort() - blurt out an error and exit * ErrorLog::Fmt() - format an error message * * ErrorLog::SetLog() - redirect Abort() and Report() to named file * ErrorLog::SetTag() - replace standard tag used by Report() * * ErrorLog::SetSyslog() - redirect error messages to syslog on UNIX. * ErrorLog::UnsetSyslog() - Cancel syslog redirection. Revert to log file. */ class FileSys; typedef void (*StructuredLogHook)( void *context, const Error *e ); /* * class ErrorLog - write errors to log/syslog */ class ErrorLog { public: enum log_types { type_none, type_stdout, type_stderr, type_syslog }; ErrorLog(): hook(NULL), context(NULL){ init(); } ErrorLog( ErrorLog *from ); ~ErrorLog(); void Abort( const Error *e ); void SysLog( const Error *e, int tagged, const char *et, const char *buf ); void Report( const Error *e ){ Report( e, 1 ); } void ReportNoTag( const Error *e ){ Report( e, 0 ); } void Report( const Error *e, int tagged ); void LogWrite( const StrPtr & ); // Utility methods offL_t Size(); int Exists() { return errorFsys != 0; } const char *Name(); // Global settings void SetLog( const char *file ); void SetSyslog() { logType = type_syslog; } void UnsetSyslog() { logType = type_stderr; } void UnsetLogType() { logType = type_none; } void SetTag( const char *tag ) { errorTag = tag; } void EnableCritSec(); void Rename( const char *file, Error *e ); void SetStructuredLogHook( void *ctx, StructuredLogHook hk ) { hook = hk; context = ctx; } private: void init(); const char *errorTag; int logType; FileSys *errorFsys; StructuredLogHook hook; void *context; void *vp_critsec; } ; /* * AssertError() - in case you need a global error to Abort() on */ extern Error AssertError; extern ErrorLog AssertLog;
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 15071 | alan_petersen |
Populate -o //guest/perforce_software/piper/... //guest/alan_petersen/piper/.... |
||
//guest/perforce_software/piper/mac/main/Perforce/p4api/Headers/errorlog.h | |||||
#1 | 11252 | alan_petersen | Rename/move file(s) | ||
//guest/perforce_software/piper/mac/Perforce/p4api/Headers/errorlog.h | |||||
#1 | 10744 | alan_petersen | Rename/move file(s) | ||
//guest/perforce_software/piper/Perforce/p4api/Headers/errorlog.h | |||||
#1 | 8919 | Matt Attaway | Initial add of Piper, a lightweight Perforce client for artists and designers. |