incremental
diff --git a/include/crow/g3_logger.hpp b/include/crow/g3_logger.hpp
new file mode 100644
index 0000000..8980207
--- /dev/null
+++ b/include/crow/g3_logger.hpp
@@ -0,0 +1,89 @@
+#pragma once
+
+// This file overrides the default crow logging framework to use g3 instead.
+// It implements enough of the interfaces of the crow logging framework to work correctly
+// but deletes the ILogHandler interface, as usage of that would be counter to the g3
+// handler management, and would cause performance issues.
+
+#include <cstdio>
+#include <cstdlib>
+#include <ctime>
+#include <iostream>
+#include <sstream>
+#include <string>
+
+#include <g3log/g3log.hpp>
+#include <g3log/logworker.hpp>
+
+namespace crow {
+enum class LogLevel {
+#ifndef ERROR
+ DEBUG = 0,
+ INFO,
+ WARNING,
+ ERROR,
+ CRITICAL,
+#endif
+
+ Debug = 0,
+ Info,
+ Warning,
+ Error,
+ Critical,
+};
+
+class logger {
+ public:
+ logger(std::string prefix, LogLevel level) {
+ // no op, let g3 handle th log levels
+ }
+
+ //
+ template <typename T>
+ logger& operator<<(T const& value) {
+ return *this;
+ }
+
+ //
+ static void setLogLevel(LogLevel level) { }
+
+ static LogLevel get_current_log_level() { return get_log_level_ref(); }
+
+ private:
+ //
+ static LogLevel& get_log_level_ref() {
+ static LogLevel current_level = LogLevel::DEBUG;
+ return current_level;
+ }
+
+ //
+ std::ostringstream stringstream_;
+ LogLevel level_;
+};
+}
+
+#define CROW_LOG_CRITICAL LOG(FATAL)
+#define CROW_LOG_ERROR LOG(WARNING)
+#define CROW_LOG_WARNING LOG(WARNING)
+#define CROW_LOG_INFO LOG(INFO)
+#define CROW_LOG_DEBUG LOG(DEBUG)
+
+
+
+/*
+#define CROW_LOG_CRITICAL \
+ if (false) \
+ crow::logger("CRITICAL", crow::LogLevel::Critical)
+#define CROW_LOG_ERROR \
+ if (false) \
+ crow::logger("ERROR ", crow::LogLevel::Error)
+#define CROW_LOG_WARNING \
+ if (false) \
+ crow::logger("WARNING ", crow::LogLevel::Warning)
+#define CROW_LOG_INFO \
+ if (false) \
+ crow::logger("INFO ", crow::LogLevel::Info)
+#define CROW_LOG_DEBUG \
+ if (false) \
+ crow::logger("DEBUG ", crow::LogLevel::Debug)
+*/
\ No newline at end of file