From f82740ed93cd1e4c7f87fb3f6d19122733f36541 Mon Sep 17 00:00:00 2001 From: "Daniel J. Hofmann" Date: Mon, 9 Jan 2017 05:36:49 +0100 Subject: [PATCH] Logs the current thread's id in assertions and for requests, resolves #3534 --- src/server/request_handler.cpp | 8 ++++++-- src/util/assert.cpp | 6 +++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/server/request_handler.cpp b/src/server/request_handler.cpp index ed606d359..953f218a3 100644 --- a/src/server/request_handler.cpp +++ b/src/server/request_handler.cpp @@ -25,6 +25,7 @@ #include #include #include +#include namespace osrm { @@ -46,13 +47,16 @@ void RequestHandler::HandleRequest(const http::request ¤t_request, http::r return; } + const auto tid = std::this_thread::get_id(); + // parse command try { TIMER_START(request_duration); std::string request_string; util::URIDecode(current_request.uri, request_string); - util::Log(logDEBUG) << "req: " << request_string; + + util::Log(logDEBUG) << "[req][" << tid << "] " << request_string; auto api_iterator = request_string.begin(); auto maybe_parsed_url = api::parseURL(api_iterator, request_string.end()); @@ -158,7 +162,7 @@ void RequestHandler::HandleRequest(const http::request ¤t_request, http::r catch (const std::exception &e) { current_reply = http::reply::stock_reply(http::reply::internal_server_error); - util::Log(logWARNING) << "[server error] code: " << e.what() + util::Log(logWARNING) << "[server error][" << tid << "] code: " << e.what() << ", uri: " << current_request.uri; } } diff --git a/src/util/assert.cpp b/src/util/assert.cpp index 6210ad9a0..1437c4df1 100644 --- a/src/util/assert.cpp +++ b/src/util/assert.cpp @@ -2,6 +2,7 @@ #include #include +#include namespace { @@ -9,7 +10,10 @@ namespace [[noreturn]] void assertion_failed_msg_helper( char const *expr, char const *msg, char const *function, char const *file, long line) { - std::cerr << "[assert] " << file << ":" << line << "\nin: " << function << ": " << expr << "\n" + const auto tid = std::this_thread::get_id(); + + std::cerr << "[assert][" << tid << "] " << file << ":" << line << "\nin: " << function << ": " + << expr << "\n" << msg; std::terminate(); }