aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--amalgamate/crow_all.h151
-rw-r--r--include/http_connection.h6
2 files changed, 79 insertions, 78 deletions
diff --git a/amalgamate/crow_all.h b/amalgamate/crow_all.h
index a52eb1f..5742e54 100644
--- a/amalgamate/crow_all.h
+++ b/amalgamate/crow_all.h
@@ -4791,85 +4791,85 @@ using namespace std;
namespace crow
{
- enum class LogLevel
- {
- DEBUG,
- INFO,
- WARNING,
- ERROR,
- CRITICAL,
- };
-
- class ILogHandler {
- public:
- virtual void log(string message, LogLevel level) = 0;
- };
-
- class CerrLogHandler : public ILogHandler {
- public:
- void log(string message, LogLevel level) override {
- cerr << message;
- }
- };
+ enum class LogLevel
+ {
+ DEBUG,
+ INFO,
+ WARNING,
+ ERROR,
+ CRITICAL,
+ };
- class logger {
+ class ILogHandler {
+ public:
+ virtual void log(string message, LogLevel level) = 0;
+ };
- private:
- //
- static string timestamp()
- {
- char date[32];
- time_t t = time(0);
- strftime(date, sizeof(date), "%Y-%m-%d %H:%M:%S", gmtime(&t));
- return string(date);
- }
+ class CerrLogHandler : public ILogHandler {
+ public:
+ void log(string message, LogLevel level) override {
+ cerr << message;
+ }
+ };
- public:
+ class logger {
+ private:
+ //
+ static string timestamp()
+ {
+ char date[32];
+ time_t t = time(0);
+ strftime(date, sizeof(date), "%Y-%m-%d %H:%M:%S", gmtime(&t));
+ return string(date);
+ }
- logger(string prefix, LogLevel level) : level_(level) {
- #ifdef CROW_ENABLE_LOGGING
- stringstream_ << "(" << timestamp() << ") [" << prefix << "] ";
- #endif
+ public:
- }
- ~logger() {
- #ifdef CROW_ENABLE_LOGGING
- if(level_ >= get_current_log_level()) {
- stringstream_ << endl;
- get_handler_ref()->log(stringstream_.str(), level_);
- }
- #endif
- }
- //
- template <typename T>
- logger& operator<<(T const &value) {
+ logger(string prefix, LogLevel level) : level_(level) {
+ #ifdef CROW_ENABLE_LOGGING
+ stringstream_ << "(" << timestamp() << ") [" << prefix << "] ";
+ #endif
- #ifdef CROW_ENABLE_LOGGING
- if(level_ >= get_current_log_level()) {
- stringstream_ << value;
- }
- #endif
- return *this;
- }
+ }
+ ~logger() {
+ #ifdef CROW_ENABLE_LOGGING
+ if(level_ >= get_current_log_level()) {
+ stringstream_ << endl;
+ get_handler_ref()->log(stringstream_.str(), level_);
+ }
+ #endif
+ }
- //
- static void setLogLevel(LogLevel level) {
- get_log_level_ref() = level;
- }
+ //
+ template <typename T>
+ logger& operator<<(T const &value) {
- static void setHandler(ILogHandler* handler) {
- get_handler_ref() = handler;
- }
+ #ifdef CROW_ENABLE_LOGGING
+ if(level_ >= get_current_log_level()) {
+ stringstream_ << value;
+ }
+ #endif
+ return *this;
+ }
+
+ //
+ static void setLogLevel(LogLevel level) {
+ get_log_level_ref() = level;
+ }
+
+ static void setHandler(ILogHandler* handler) {
+ get_handler_ref() = handler;
+ }
static LogLevel get_current_log_level() {
return get_log_level_ref();
}
- private:
- //
- static LogLevel& get_log_level_ref()
+ private:
+ //
+ static LogLevel& get_log_level_ref()
{
static LogLevel current_level = (LogLevel)CROW_LOG_LEVEL;
return current_level;
@@ -4881,17 +4881,17 @@ namespace crow
return current_handler;
}
- //
- ostringstream stringstream_;
- LogLevel level_;
- };
+ //
+ ostringstream stringstream_;
+ LogLevel level_;
+ };
}
-#define CROW_LOG_CRITICAL crow::logger("CRITICAL", crow::LogLevel::CRITICAL)
-#define CROW_LOG_ERROR crow::logger("ERROR ", crow::LogLevel::ERROR)
-#define CROW_LOG_WARNING crow::logger("WARNING ", crow::LogLevel::WARNING)
-#define CROW_LOG_INFO crow::logger("INFO ", crow::LogLevel::INFO)
-#define CROW_LOG_DEBUG crow::logger("DEBUG ", crow::LogLevel::DEBUG)
+#define CROW_LOG_CRITICAL crow::logger("CRITICAL", crow::LogLevel::CRITICAL)
+#define CROW_LOG_ERROR crow::logger("ERROR ", crow::LogLevel::ERROR)
+#define CROW_LOG_WARNING crow::logger("WARNING ", crow::LogLevel::WARNING)
+#define CROW_LOG_INFO crow::logger("INFO ", crow::LogLevel::INFO)
+#define CROW_LOG_DEBUG crow::logger("DEBUG ", crow::LogLevel::DEBUG)
@@ -5540,11 +5540,12 @@ namespace crow
{
CROW_LOG_INFO << "Response: " << this << ' ' << res.code << ' ' << close_connection_;
+ auto self = this->shared_from_this();
+ res.complete_request_handler_ = nullptr;
+
if (!socket_.is_open())
return;
- auto self = this->shared_from_this();
- res.complete_request_handler_ = nullptr;
static std::unordered_map<int, std::string> statusCodes = {
{200, "HTTP/1.1 200 OK\r\n"},
diff --git a/include/http_connection.h b/include/http_connection.h
index a030d73..04ffa3f 100644
--- a/include/http_connection.h
+++ b/include/http_connection.h
@@ -113,11 +113,11 @@ namespace crow
{
CROW_LOG_INFO << "Response: " << this << ' ' << res.code << ' ' << close_connection_;
- if (!socket_.is_open())
- return;
-
auto self = this->shared_from_this();
res.complete_request_handler_ = nullptr;
+
+ if (!socket_.is_open())
+ return;
static std::unordered_map<int, std::string> statusCodes = {
{200, "HTTP/1.1 200 OK\r\n"},