mirror of
https://github.com/codership/wsrep-lib.git
synced 2025-07-28 20:02:00 +03:00
Debug log level implementation
Debug log will now filter output based on debug level that is enabled.
This commit is contained in:
@ -674,7 +674,7 @@ namespace wsrep
|
||||
int debug_log_level() const
|
||||
{
|
||||
return std::max(debug_log_level_,
|
||||
server_state_.debug_log_level());
|
||||
wsrep::log::debug_log_level());
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -25,6 +25,12 @@
|
||||
|
||||
#include <iosfwd>
|
||||
#include <sstream>
|
||||
#include <atomic>
|
||||
|
||||
#define WSREP_LOG_DEBUG(debug_level_fn, debug_level, msg) \
|
||||
do { \
|
||||
if (debug_level_fn >= debug_level) wsrep::log_debug() << msg; \
|
||||
} while (0)
|
||||
|
||||
namespace wsrep
|
||||
{
|
||||
@ -39,6 +45,14 @@ namespace wsrep
|
||||
error
|
||||
};
|
||||
|
||||
enum debug_level
|
||||
{
|
||||
debug_level_server_state = 1,
|
||||
debug_level_transaction,
|
||||
debug_level_streaming,
|
||||
debug_level_client_state
|
||||
};
|
||||
|
||||
/**
|
||||
* Signature for user defined logger callback function.
|
||||
*/
|
||||
@ -85,6 +99,17 @@ namespace wsrep
|
||||
* Set user defined logger callback function.
|
||||
*/
|
||||
static void logger_fn(logger_fn_type);
|
||||
|
||||
/**
|
||||
* Set debug log level from client
|
||||
*/
|
||||
static void debug_log_level(int debug_level);
|
||||
|
||||
/**
|
||||
* Get current debug log level
|
||||
*/
|
||||
static int debug_log_level();
|
||||
|
||||
private:
|
||||
log(const log&);
|
||||
log& operator=(const log&);
|
||||
@ -94,6 +119,7 @@ namespace wsrep
|
||||
static wsrep::mutex& mutex_;
|
||||
static std::ostream& os_;
|
||||
static logger_fn_type logger_fn_;
|
||||
static std::atomic_int debug_log_level_;
|
||||
};
|
||||
|
||||
class log_error : public log
|
||||
|
@ -87,6 +87,7 @@
|
||||
#include "id.hpp"
|
||||
#include "view.hpp"
|
||||
#include "transaction_id.hpp"
|
||||
#include "logger.hpp"
|
||||
#include "provider.hpp"
|
||||
#include "compiler.hpp"
|
||||
|
||||
@ -542,17 +543,10 @@ namespace wsrep
|
||||
* - 0 - No debug logging.
|
||||
* - 1..n - Debug logging with increasing verbosity.
|
||||
*/
|
||||
void debug_log_level(int level) { debug_log_level_ = level; }
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
int debug_log_level() const { return debug_log_level_; }
|
||||
|
||||
/**
|
||||
* @todo Set filter for debug logging.
|
||||
*/
|
||||
void debug_log_filter(const std::string&);
|
||||
void debug_log_level(int level)
|
||||
{
|
||||
wsrep::log::debug_log_level(level);
|
||||
}
|
||||
|
||||
wsrep::mutex& mutex() { return mutex_; }
|
||||
|
||||
@ -611,7 +605,6 @@ namespace wsrep
|
||||
, connected_gtid_()
|
||||
, current_view_()
|
||||
, last_committed_gtid_()
|
||||
, debug_log_level_(0)
|
||||
{ }
|
||||
|
||||
private:
|
||||
@ -701,7 +694,6 @@ namespace wsrep
|
||||
wsrep::gtid connected_gtid_;
|
||||
wsrep::view current_view_;
|
||||
wsrep::gtid last_committed_gtid_;
|
||||
int debug_log_level_;
|
||||
};
|
||||
|
||||
|
||||
|
@ -62,12 +62,16 @@ namespace wsrep
|
||||
{
|
||||
if (fragment_size)
|
||||
{
|
||||
wsrep::log_debug() << "Enabling streaming: "
|
||||
<< fragment_unit << " " << fragment_size;
|
||||
WSREP_LOG_DEBUG(wsrep::log::debug_log_level(),
|
||||
wsrep::log::debug_level_streaming,
|
||||
"Enabling streaming: "
|
||||
<< fragment_unit << " " << fragment_size);
|
||||
}
|
||||
else
|
||||
{
|
||||
wsrep::log_debug() << "Disabling streaming";
|
||||
WSREP_LOG_DEBUG(wsrep::log::debug_log_level(),
|
||||
wsrep::log::debug_level_streaming,
|
||||
"Disabling streaming");
|
||||
}
|
||||
fragment_unit_ = fragment_unit;
|
||||
fragment_size_ = fragment_size;
|
||||
@ -76,8 +80,10 @@ namespace wsrep
|
||||
|
||||
void enable(enum fragment_unit fragment_unit, size_t fragment_size)
|
||||
{
|
||||
wsrep::log_debug() << "Enabling streaming: "
|
||||
<< fragment_unit << " " << fragment_size;
|
||||
WSREP_LOG_DEBUG(wsrep::log::debug_log_level(),
|
||||
wsrep::log::debug_level_streaming,
|
||||
"Enabling streaming: "
|
||||
<< fragment_unit << " " << fragment_size);
|
||||
assert(fragment_size > 0);
|
||||
fragment_unit_ = fragment_unit;
|
||||
fragment_size_ = fragment_size;
|
||||
@ -89,7 +95,9 @@ namespace wsrep
|
||||
|
||||
void disable()
|
||||
{
|
||||
wsrep::log_debug() << "Disabling streaming";
|
||||
WSREP_LOG_DEBUG(wsrep::log::debug_log_level(),
|
||||
wsrep::log::debug_level_streaming,
|
||||
"Disabling streaming");
|
||||
fragment_size_ = 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user