aboutsummaryrefslogtreecommitdiffstats
path: root/yage/core/logger.h
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2018-01-06 11:30:24 +0000
committerYann Herklotz <ymherklotz@gmail.com>2018-01-06 11:30:24 +0000
commitc7090180503f263c60ec34844992e0e8d4bea85a (patch)
tree6ecc5b2e16856db49de056738b36e1ba103d3049 /yage/core/logger.h
parentcf4c73f2a75b470a4d4c4167105f92bc46f1926c (diff)
parent07012cf0982d3f86aebe83b5bdc4a67332c635da (diff)
downloadYAGE-c7090180503f263c60ec34844992e0e8d4bea85a.tar.gz
YAGE-c7090180503f263c60ec34844992e0e8d4bea85a.zip
Merge branch 'develop'
Diffstat (limited to 'yage/core/logger.h')
-rw-r--r--yage/core/logger.h37
1 files changed, 30 insertions, 7 deletions
diff --git a/yage/core/logger.h b/yage/core/logger.h
index 95af73b0..2423f3c3 100644
--- a/yage/core/logger.h
+++ b/yage/core/logger.h
@@ -13,19 +13,24 @@
#include <string>
#include <vector>
+#include "../util/active.h"
+#include "loglevel.h"
+#include "logmessage.h"
+#include "logsink.h"
+
namespace yage
{
-class Active;
-class LogMessage;
-class LogSink;
-
class Logger
{
public:
- explicit Logger();
+ Logger();
+ explicit Logger(const std::string &file_path);
+ explicit Logger(LogLevel min_level);
+ Logger(LogLevel min_level, const std::string &file_path);
- LogMessage operator()(const std::string &fileName, int lineNum);
+ LogMessage operator()(LogLevel level = LogLevel::INFO, const std::string &fileName = "",
+ int lineNum = -1);
void flush(const LogMessage *msg);
void add(const LogSink &sink);
@@ -34,13 +39,31 @@ public:
static Logger &instance();
+ // setter for the level
+ void setLevel(LogLevel min_level);
+
private:
std::vector<LogSink> sinks_;
std::unique_ptr<Active> active_;
+ LogLevel min_level_;
};
} // namespace yage
-#define gLog (yage::Logger::instance()(__FILE__, __LINE__))
+#define yLogger (yage::Logger::instance())
+
+#define yLogDebug \
+ (yage::Logger::instance()(yage::LogLevel::DEBUG, __FILE__, __LINE__))
+
+#define yLogInfo (yage::Logger::instance()(yage::LogLevel::INFO, __FILE__, __LINE__))
+
+#define yLogWarning \
+ (yage::Logger::instance()(yage::LogLevel::WARNING, __FILE__, __LINE__))
+
+#define yLogError \
+ (yage::Logger::instance()(yage::LogLevel::ERROR, __FILE__, __LINE__))
+
+#define yLogFatal \
+ (yage::Logger::instance()(yage::LogLevel::FATAL, __FILE__, __LINE__))
#endif