29 lines
512 B
C
29 lines
512 B
C
|
#pragma once
|
||
|
|
||
|
#include <list>
|
||
|
#include <string>
|
||
|
|
||
|
class Loggable {
|
||
|
public:
|
||
|
enum Severity {
|
||
|
debug,
|
||
|
info,
|
||
|
minor,
|
||
|
major,
|
||
|
warning,
|
||
|
error,
|
||
|
fatal
|
||
|
};
|
||
|
typedef std::pair<Severity, std::string> Message;
|
||
|
|
||
|
Loggable(Severity severity);
|
||
|
~Loggable();
|
||
|
|
||
|
void log (Severity severity, const std::string& comment) const;
|
||
|
std::list<Message> getHistory() const;
|
||
|
|
||
|
private:
|
||
|
const Severity currentSeverity;
|
||
|
mutable std::list<Message> history;
|
||
|
};
|