#ifndef ERIS_LOG_H
#define ERIS_LOG_H
#include <sigc++/signal.h>
#include <string>
namespace Eris
{
/** Logging level : setting a higher level will automaticaly pull in the lower
levels (i.e NOTICE implies ERROR and WARNING) */
typedef enum {
LOG_ERROR = 0, ///< serious failure indications
LOG_WARNING, ///< something is amiss, but probably okay to continue
LOG_NOTICE, ///< general information
LOG_VERBOSE, ///< <i>lots</i> of information, about every recieved operation, for example
LOG_DEBUG ///< excessive amounts of stuff
} LogLevel;
/// the default logging level for a new connection
const LogLevel DEFAULT_LOG = LOG_WARNING;
/** Emitted with logging information; client may handle as it see fit.
There is room for considerable expansion of this feature; notably message
classes (warning / info / debug). Any feedback greatly appreciated */
extern SigC::Signal2<void, LogLevel, const std::string&> Logged;
/** set the logging level for all sucessive messages : this can be called at any time, so it is
reasonable to bracket suspect calls in setLogLevel calls if you choose */
void setLogLevel(LogLevel lvl);
LogLevel getLogLevel();
}
#include <Eris/LogStream.h>
#endif
syntax highlighted by Code2HTML, v. 0.9.1