mirror of
https://github.com/OpenVPN/openvpn3.git
synced 2024-09-19 19:52:15 +02:00
logger: De-duplicate Logger::log_{trace, info, ...} logic
Add a single template function implementing the logging logic, parametrized by log level, and have the log_{trace, info, ...} functions call that. While at it, const-ify a couple of member functions. Signed-off-by: Razvan Cojocaru <razvan.cojocaru@openvpn.com>
This commit is contained in:
parent
bd5685c921
commit
98e0f1f650
@ -67,7 +67,7 @@ class Logger
|
|||||||
|
|
||||||
|
|
||||||
//! return the current logging level for all logging
|
//! return the current logging level for all logging
|
||||||
int log_level()
|
int log_level() const
|
||||||
{
|
{
|
||||||
return current_log_level;
|
return current_log_level;
|
||||||
}
|
}
|
||||||
@ -78,9 +78,8 @@ class Logger
|
|||||||
current_log_level = level;
|
current_log_level = level;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//! return the current prefix all logging
|
//! return the current prefix all logging
|
||||||
std::string log_prefix()
|
std::string log_prefix() const
|
||||||
{
|
{
|
||||||
return prefix_;
|
return prefix_;
|
||||||
}
|
}
|
||||||
@ -91,6 +90,21 @@ class Logger
|
|||||||
prefix_ = prefix;
|
prefix_ = prefix;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prints a log message for tracing if the log level
|
||||||
|
* is at least LEVEL.
|
||||||
|
* @param msg the message to print
|
||||||
|
*/
|
||||||
|
template <int LEVEL, typename T>
|
||||||
|
void log(T &&msg)
|
||||||
|
{
|
||||||
|
/* this ensures that the function is empty if MAX_LEVEL excludes this level */
|
||||||
|
if constexpr (max_log_level >= LEVEL)
|
||||||
|
{
|
||||||
|
if (current_log_level >= LEVEL)
|
||||||
|
OPENVPN_LOG(prefix_ << std::forward<T>(msg));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints a log message for tracing if the log level
|
* Prints a log message for tracing if the log level
|
||||||
@ -100,12 +114,7 @@ class Logger
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
void log_trace(T &&msg)
|
void log_trace(T &&msg)
|
||||||
{
|
{
|
||||||
/* this ensures that the function is empty if MAX_LEVEL excludes this level */
|
log<LOG_LEVEL_TRACE>(std::forward<T>(msg));
|
||||||
if constexpr (max_log_level >= LOG_LEVEL_TRACE)
|
|
||||||
{
|
|
||||||
if (current_log_level >= LOG_LEVEL_TRACE)
|
|
||||||
OPENVPN_LOG(prefix_ << msg);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -116,15 +125,9 @@ class Logger
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
void log_debug(T &&msg)
|
void log_debug(T &&msg)
|
||||||
{
|
{
|
||||||
/* this ensures that the function is empty if MAX_LEVEL excludes this level */
|
log<LOG_LEVEL_DEBUG>(std::forward<T>(msg));
|
||||||
if constexpr (max_log_level >= LOG_LEVEL_DEBUG)
|
|
||||||
{
|
|
||||||
if (current_log_level >= LOG_LEVEL_DEBUG)
|
|
||||||
OPENVPN_LOG(prefix_ << msg);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints a log message for general info if the log level
|
* Prints a log message for general info if the log level
|
||||||
* is at least INFO (=1)
|
* is at least INFO (=1)
|
||||||
@ -133,12 +136,7 @@ class Logger
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
void log_info(T &&msg)
|
void log_info(T &&msg)
|
||||||
{
|
{
|
||||||
/* this ensures that the function is empty if MAX_LEVEL excludes this level */
|
log<LOG_LEVEL_INFO>(std::forward<T>(msg));
|
||||||
if constexpr (max_log_level >= LOG_LEVEL_INFO)
|
|
||||||
{
|
|
||||||
if (current_log_level >= LOG_LEVEL_INFO)
|
|
||||||
OPENVPN_LOG(prefix_ << msg);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -148,12 +146,7 @@ class Logger
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
void log_verbose(T &&msg)
|
void log_verbose(T &&msg)
|
||||||
{
|
{
|
||||||
/* this ensures that the function is empty if MAX_LEVEL excludes this level */
|
log<LOG_LEVEL_VERB>(std::forward<T>(msg));
|
||||||
if constexpr (max_log_level >= LOG_LEVEL_VERB)
|
|
||||||
{
|
|
||||||
if (current_log_level >= LOG_LEVEL_VERB)
|
|
||||||
OPENVPN_LOG(prefix_ << msg);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -163,8 +156,7 @@ class Logger
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
void log_error(T &&msg)
|
void log_error(T &&msg)
|
||||||
{
|
{
|
||||||
if (current_log_level >= LOG_LEVEL_ERROR)
|
log<LOG_LEVEL_ERROR>(std::forward<T>(msg));
|
||||||
OPENVPN_LOG(prefix_ << msg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
Loading…
Reference in New Issue
Block a user