Initial source commit
This commit is contained in:
commit
f1384c11ee
335 changed files with 52715 additions and 0 deletions
167
minorGems/util/log/AppLog.h
Normal file
167
minorGems/util/log/AppLog.h
Normal file
|
@ -0,0 +1,167 @@
|
|||
/*
|
||||
* Modification History
|
||||
*
|
||||
* 2002-February-25 Jason Rohrer
|
||||
* Created.
|
||||
*
|
||||
* 2002-March-30 Jason Rohrer
|
||||
* Wrapped our dynamically allocated static member in a statically
|
||||
* allocated class to avoid memory leaks at program termination.
|
||||
*
|
||||
* 2010-May-14 Jason Rohrer
|
||||
* String parameters as const to fix warnings.
|
||||
*/
|
||||
|
||||
#include "minorGems/common.h"
|
||||
|
||||
|
||||
|
||||
#ifndef APP_LOG_INCLUDED
|
||||
#define APP_LOG_INCLUDED
|
||||
|
||||
|
||||
#include "Log.h"
|
||||
#include "PrintLog.h"
|
||||
|
||||
|
||||
|
||||
// internally used class
|
||||
class LogPointerWrapper;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* A singleton wrapper for implementations of the Log interface.
|
||||
*
|
||||
* This class should be the interface for log-access for applications.
|
||||
*
|
||||
* @author Jason Rohrer
|
||||
*/
|
||||
class AppLog {
|
||||
|
||||
|
||||
|
||||
public:
|
||||
|
||||
|
||||
/**
|
||||
* These log errors at various levels.
|
||||
*
|
||||
* All char* parameters must be \0-terminated and destroyed by caller.
|
||||
*/
|
||||
|
||||
static void criticalError( const char *inString );
|
||||
static void criticalError( const char *inLoggerName,
|
||||
const char *inString );
|
||||
|
||||
static void error( const char *inString );
|
||||
static void error( const char *inLoggerName, const char *inString );
|
||||
|
||||
static void warning( const char *inString );
|
||||
static void warning( const char *inLoggerName, const char *inString );
|
||||
|
||||
static void info( const char *inString );
|
||||
static void info( const char *inLoggerName, const char *inString );
|
||||
|
||||
static void detail( const char *inString );
|
||||
static void detail( const char *inLoggerName, const char *inString );
|
||||
|
||||
static void trace( const char *inString );
|
||||
static void trace( const char *inLoggerName, const char *inString );
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Sets the log to use.
|
||||
* Note that this call destroys the current log.
|
||||
*
|
||||
* @param inLog the log to use.
|
||||
* Will be destroyed by this class.
|
||||
*/
|
||||
static void setLog( Log *inLog );
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gets the log being used.
|
||||
*
|
||||
* @return the log being used.
|
||||
* Will be destroyed by this class.
|
||||
*/
|
||||
static Log *getLog();
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Sets the logging level of the current log.
|
||||
*
|
||||
* Messages with levels above the current level will not be logged.
|
||||
*
|
||||
* @param inLevel one of the defined logging levels.
|
||||
*/
|
||||
static void setLoggingLevel( int inLevel );
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gets the logging level of the current log.
|
||||
*
|
||||
* Messages with levels above the current level will not be logged.
|
||||
*
|
||||
* @return one of the defined logging levels.
|
||||
*/
|
||||
static int getLoggingLevel();
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
// note that all static objects
|
||||
// are destroyed at program termination
|
||||
//static Log *mLog;
|
||||
static LogPointerWrapper mLogPointerWrapper;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Wrapper for static member pointer to ensure
|
||||
* deletion of static member object at program termination.
|
||||
*/
|
||||
class LogPointerWrapper {
|
||||
|
||||
|
||||
|
||||
public:
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Constructor allows specification of the object
|
||||
* to wrap and destroy at program termination.
|
||||
*
|
||||
* @param inLog the log object to wrap.
|
||||
* Will be destroyed at program termination if non-NULL.
|
||||
*/
|
||||
LogPointerWrapper( Log *inLog );
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Destructor will get called at program termination
|
||||
* if the object is statically allocated.
|
||||
*/
|
||||
~LogPointerWrapper();
|
||||
|
||||
|
||||
|
||||
Log *mLog;
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue