From ff55b0295605dca33082559109c158ee1171576f Mon Sep 17 00:00:00 2001 From: Davis King Date: Sat, 26 Apr 2014 17:17:22 -0400 Subject: [PATCH] Just a few minor overloads and usability tweaks to the logger interface. --- dlib/logger/logger_kernel_1.h | 21 +++++++++++++++++++++ dlib/logger/logger_kernel_abstract.h | 23 +++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/dlib/logger/logger_kernel_1.h b/dlib/logger/logger_kernel_1.h index 9c855d23c..4204e938c 100644 --- a/dlib/logger/logger_kernel_1.h +++ b/dlib/logger/logger_kernel_1.h @@ -36,10 +36,21 @@ namespace dlib name[19] = '\0'; } + bool operator< (const log_level& rhs) const { return priority < rhs.priority; } + bool operator<=(const log_level& rhs) const { return priority <= rhs.priority; } + bool operator> (const log_level& rhs) const { return priority > rhs.priority; } + bool operator>=(const log_level& rhs) const { return priority >= rhs.priority; } + int priority; char name[20]; }; + inline std::ostream& operator<< (std::ostream& out, const log_level& item) + { + out << item.name; + return out; + } + const log_level LALL (std::numeric_limits::min(),"ALL"); const log_level LNONE (std::numeric_limits::max(),"NONE"); const log_level LTRACE(-100,"TRACE"); @@ -79,6 +90,16 @@ namespace dlib const char* message_to_log) ); + template < + typename T + > + void set_all_logging_output_hooks ( + T& object + ) + { + set_all_logging_output_hooks(object, &T::log); + } + // ---------------------------------------------------------------------------------------- class logger diff --git a/dlib/logger/logger_kernel_abstract.h b/dlib/logger/logger_kernel_abstract.h index c9f4de005..0da16a3c2 100644 --- a/dlib/logger/logger_kernel_abstract.h +++ b/dlib/logger/logger_kernel_abstract.h @@ -35,10 +35,22 @@ namespace dlib is null terminated. !*/ + bool operator< (const log_level& rhs) const { return priority < rhs.priority; } + bool operator<=(const log_level& rhs) const { return priority <= rhs.priority; } + bool operator> (const log_level& rhs) const { return priority > rhs.priority; } + bool operator>=(const log_level& rhs) const { return priority >= rhs.priority; } + int priority; char name[20]; }; + inline std::ostream& operator<< (std::ostream& out, const log_level& item); + /*! + ensures + - performs out << item.name + - returns out + !*/ + // ---------------------------------------------------------------------------------------- const log_level LALL (std::numeric_limits::min(),"ALL"); @@ -89,6 +101,17 @@ namespace dlib - std::bad_alloc !*/ + template < + typename T + > + void set_all_logging_output_hooks ( + T& object + ); + /*! + ensures + - calls set_all_logging_output_hooks(object, &T::log); + !*/ + // ---------------------------------------------------------------------------------------- void set_all_logging_levels (