aboutsummaryrefslogtreecommitdiffstats
path: root/yage/core/logger.h
diff options
context:
space:
mode:
Diffstat (limited to 'yage/core/logger.h')
-rw-r--r--yage/core/logger.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/yage/core/logger.h b/yage/core/logger.h
index 6829327e..2c70fd04 100644
--- a/yage/core/logger.h
+++ b/yage/core/logger.h
@@ -9,23 +9,35 @@
#ifndef YAGE_CORE_LOGGER_H
#define YAGE_CORE_LOGGER_H
-#include "logmessage.h"
+#include <string>
+#include <vector>
namespace yage
{
+class LogMessage;
+class LogSink;
+
class Logger
{
public:
- LogMessage operator()();
+ explicit Logger();
+
+ LogMessage operator()(const std::string &fileName, int lineNum);
void flush(const LogMessage *msg);
+ void add(const LogSink &sink);
+ void remove(const LogSink &sink);
+ void clear();
static Logger &instance();
+
+private:
+ std::vector<LogSink> sinks_;
};
} // namespace yage
-#define gLog yage::Logger::instance()()
+#define gLog (yage::Logger::instance()(__FILE__, __LINE__))
#endif