Commit 7ec4be04 authored by Dominik Charousset's avatar Dominik Charousset Committed by Dominik Charousset

Use bounded queue for the logger, cleanup code

- Use detail::ringbuffer as queue for the logger
- Limit queue size to 128 per default
- Consolidate various flags and parameters in a simple bitfield
- Re-assign log level integer values:
  * Log level QUIET is now 0
  * TRACE has now the new maximum value 15
  * Added 9 currently unused values for later extensions
- Use names, not integers for the CAF_LOG_LEVEL variable in CMake
- Remove several #ifdef-blocks in the logger implementation
  * A log level of QUIET already makes these code paths unreachable
  * Enables users to compile without CAF logging but still the logger
parent ce577346
......@@ -368,7 +368,22 @@ endif()
################################################################################
if(NOT CAF_LOG_LEVEL)
set(CAF_LOG_LEVEL "-1")
set(CAF_LOG_LEVEL "QUIET")
endif()
# set human-readable representation for log level
if(CAF_LOG_LEVEL STREQUAL "ERROR")
set(CAF_LOG_LEVEL_INT 3)
elseif(CAF_LOG_LEVEL STREQUAL "WARNING")
set(CAF_LOG_LEVEL_INT 6)
elseif(CAF_LOG_LEVEL STREQUAL "INFO")
set(CAF_LOG_LEVEL_INT 9)
elseif(CAF_LOG_LEVEL STREQUAL "DEBUG")
set(CAF_LOG_LEVEL_INT 12)
elseif(CAF_LOG_LEVEL STREQUAL "TRACE")
set(CAF_LOG_LEVEL_INT 15)
else()
set(CAF_LOG_LEVEL_INT 0)
endif()
################################################################################
......@@ -662,23 +677,6 @@ add_custom_target(gui_dummy SOURCES configure ${script_files})
# print summary #
################################################################################
# set human-readable representation for log level
set(LOG_LEVEL_STR "none")
if(CAF_LOG_LEVEL)
if(${CAF_LOG_LEVEL} EQUAL 0)
set(LOG_LEVEL_STR "ERROR")
elseif(${CAF_LOG_LEVEL} EQUAL 1)
set(LOG_LEVEL_STR "WARNING")
elseif(${CAF_LOG_LEVEL} EQUAL 2)
set(LOG_LEVEL_STR "INFO")
elseif(${CAF_LOG_LEVEL} EQUAL 3)
set(LOG_LEVEL_STR "DEBUG")
elseif(${CAF_LOG_LEVEL} EQUAL 4)
set(LOG_LEVEL_STR "TRACE")
else()
set(LOG_LEVEL_STR "invalid")
endif()
endif()
# little helper macro to invert a boolean
macro(invertYesNo in out)
if(${in})
......
......@@ -21,7 +21,7 @@
// this header is auto-generated by CMake
#define CAF_LOG_LEVEL @CAF_LOG_LEVEL@
#define CAF_LOG_LEVEL @CAF_LOG_LEVEL_INT@
#cmakedefine CAF_NO_MEM_MANAGEMENT
......
......@@ -283,27 +283,7 @@ while [ $# -ne 0 ]; do
;;
--with-log-level=*)
level=`echo "$optarg" | tr '[:lower:]' '[:upper:]'`
case $level in
ERROR)
append_cache_entry CAF_LOG_LEVEL STRING 0
;;
WARNING)
append_cache_entry CAF_LOG_LEVEL STRING 1
;;
INFO)
append_cache_entry CAF_LOG_LEVEL STRING 2
;;
DEBUG)
append_cache_entry CAF_LOG_LEVEL STRING 3
;;
TRACE)
append_cache_entry CAF_LOG_LEVEL STRING 4
;;
*)
echo "Invalid log level '$level'. Try '$0 --help' to see valid values."
exit 1
;;
esac
append_cache_entry CAF_LOG_LEVEL STRING "$level"
;;
--with-clang=*)
clang="$optarg"
......
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment