From 106082f6f8d214aa2783b57e0705ed4426340dbe Mon Sep 17 00:00:00 2001 From: Jay Zhang Date: Wed, 29 Jul 2020 06:00:47 +0000 Subject: [PATCH] feat: add ENABLE_DEBUG_LOGGING option to control debug logging output --- CMakeLists.txt | 7 +++++++ src/util/log.cpp | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0b1aaf3ab..db52c58a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,7 @@ option(ENABLE_CCACHE "Speed up incremental rebuilds via ccache" ON) option(BUILD_TOOLS "Build OSRM tools" OFF) option(BUILD_PACKAGE "Build OSRM package" OFF) option(ENABLE_ASSERTIONS "Use assertions in release mode" OFF) +option(ENABLE_DEBUG_LOGGING "Use debug logging in release mode" OFF) option(ENABLE_COVERAGE "Build with coverage instrumentalisation" OFF) option(ENABLE_SANITIZER "Use memory sanitizer for Debug build" OFF) option(ENABLE_STXXL "Use STXXL library" OFF) @@ -227,6 +228,7 @@ endif() if(CMAKE_BUILD_TYPE MATCHES Debug OR CMAKE_BUILD_TYPE MATCHES RelWithDebInfo) message(STATUS "Configuring debug mode flags") set(ENABLE_ASSERTIONS ON) + set(ENABLE_DEBUG_LOGGING ON) endif() if(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") @@ -734,6 +736,11 @@ if (ENABLE_ASSERTIONS) add_definitions(-DBOOST_ENABLE_ASSERT_HANDLER) endif() +if (ENABLE_DEBUG_LOGGING) + message(STATUS "Enabling debug logging") + add_definitions(-DENABLE_DEBUG_LOGGING) +endif() + # Add RPATH info to executables so that when they are run after being installed # (i.e., from /usr/local/bin/) the linker can find library dependencies. For # more info see http://www.cmake.org/Wiki/CMake_RPATH_handling diff --git a/src/util/log.cpp b/src/util/log.cpp index 602012bd9..0d9a06813 100644 --- a/src/util/log.cpp +++ b/src/util/log.cpp @@ -16,7 +16,7 @@ namespace static const char COL_RESET[]{"\x1b[0m"}; static const char RED[]{"\x1b[31m"}; static const char YELLOW[]{"\x1b[33m"}; -#ifndef NDEBUG +#ifdef ENABLE_DEBUG_LOGGING static const char MAGENTA[]{"\x1b[35m"}; #endif // static const char GREEN[] { "\x1b[32m"}; @@ -80,7 +80,7 @@ Log::Log(LogLevel level_, std::ostream &ostream) : level(level_), stream(ostream stream << (is_terminal ? RED : "") << "[error] "; break; case logDEBUG: -#ifndef NDEBUG +#ifdef ENABLE_DEBUG_LOGGING stream << (is_terminal ? MAGENTA : "") << "[debug] "; #endif break; @@ -126,7 +126,7 @@ Log::~Log() std::cerr << std::endl; break; case logDEBUG: -#ifdef NDEBUG +#ifndef ENABLE_DEBUG_LOGGING break; #endif case logINFO: