From 8028b5324e5a343ad0c05d9cae2ff3287e5f82a4 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sun, 22 Jan 2017 10:14:45 +0000 Subject: [PATCH 1/2] protocol: log received messages in a separate category Makes it easier to log just what's going on on P2P --- .../cryptonote_protocol_handler.inl | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/cryptonote_protocol/cryptonote_protocol_handler.inl b/src/cryptonote_protocol/cryptonote_protocol_handler.inl index 58388f8f7..211ba525c 100644 --- a/src/cryptonote_protocol/cryptonote_protocol_handler.inl +++ b/src/cryptonote_protocol/cryptonote_protocol_handler.inl @@ -46,6 +46,8 @@ #undef MONERO_DEFAULT_LOG_CATEGORY #define MONERO_DEFAULT_LOG_CATEGORY "net.cn" +#define MLOG_P2P_MESSAGE(x) MCINFO("net.p2p.msg", context << x) + namespace cryptonote { @@ -314,7 +316,7 @@ namespace cryptonote template int t_cryptonote_protocol_handler::handle_notify_new_block(int command, NOTIFY_NEW_BLOCK::request& arg, cryptonote_connection_context& context) { - LOG_PRINT_CCONTEXT_L2("NOTIFY_NEW_BLOCK (hop " << arg.hop << ")"); + MLOG_P2P_MESSAGE("Received NOTIFY_NEW_BLOCK (hop " << arg.hop << ", " << arg.b.txs.size() << " txes)"); if(context.m_state != cryptonote_connection_context::state_normal) return 1; m_core.pause_mine(); @@ -365,7 +367,7 @@ namespace cryptonote template int t_cryptonote_protocol_handler::handle_notify_new_fluffy_block(int command, NOTIFY_NEW_FLUFFY_BLOCK::request& arg, cryptonote_connection_context& context) { - LOG_PRINT_CCONTEXT_L2("NOTIFY_NEW_FLUFFY_BLOCK (hop " << arg.hop << ")"); + MLOG_P2P_MESSAGE("Received NOTIFY_NEW_FLUFFY_BLOCK (hop " << arg.hop << ", " << arg.b.txs.size() << " txes)"); if(context.m_state != cryptonote_connection_context::state_normal) return 1; @@ -613,7 +615,7 @@ namespace cryptonote template int t_cryptonote_protocol_handler::handle_request_fluffy_missing_tx(int command, NOTIFY_REQUEST_FLUFFY_MISSING_TX::request& arg, cryptonote_connection_context& context) { - LOG_PRINT_CCONTEXT_L2("NOTIFY_REQUEST_FLUFFY_MISSING_TX"); + MLOG_P2P_MESSAGE("Received NOTIFY_REQUEST_FLUFFY_MISSING_TX (" << arg.missing_tx_indices.size() << " txes)"); std::list local_blocks; std::list local_txs; @@ -671,7 +673,7 @@ namespace cryptonote template int t_cryptonote_protocol_handler::handle_notify_new_transactions(int command, NOTIFY_NEW_TRANSACTIONS::request& arg, cryptonote_connection_context& context) { - LOG_PRINT_CCONTEXT_L2("NOTIFY_NEW_TRANSACTIONS"); + MLOG_P2P_MESSAGE("Received NOTIFY_NEW_TRANSACTIONS (" << arg.txs.size() << " txes)"); if(context.m_state != cryptonote_connection_context::state_normal) return 1; @@ -703,7 +705,7 @@ namespace cryptonote template int t_cryptonote_protocol_handler::handle_request_get_objects(int command, NOTIFY_REQUEST_GET_OBJECTS::request& arg, cryptonote_connection_context& context) { - LOG_PRINT_CCONTEXT_L2("NOTIFY_REQUEST_GET_OBJECTS"); + MLOG_P2P_MESSAGE("Received NOTIFY_REQUEST_GET_OBJECTS (" << arg.blocks.size() << " blocks, " << arg.txs.size() << " txes)"); NOTIFY_RESPONSE_GET_OBJECTS::request rsp; if(!m_core.handle_get_objects(arg, rsp, context)) { @@ -743,7 +745,7 @@ namespace cryptonote template int t_cryptonote_protocol_handler::handle_response_get_objects(int command, NOTIFY_RESPONSE_GET_OBJECTS::request& arg, cryptonote_connection_context& context) { - LOG_PRINT_CCONTEXT_L2("NOTIFY_RESPONSE_GET_OBJECTS"); + MLOG_P2P_MESSAGE("Received NOTIFY_RESPONSE_GET_OBJECTS (" << arg.blocks.size() << " blocks, " << arg.txs.size() << " txes)"); // calculate size of request - mainly for logging/debug size_t size = 0; @@ -933,7 +935,7 @@ namespace cryptonote template int t_cryptonote_protocol_handler::handle_request_chain(int command, NOTIFY_REQUEST_CHAIN::request& arg, cryptonote_connection_context& context) { - LOG_PRINT_CCONTEXT_L2("NOTIFY_REQUEST_CHAIN: m_block_ids.size()=" << arg.block_ids.size()); + MLOG_P2P_MESSAGE("Received NOTIFY_REQUEST_CHAIN (" << arg.block_ids.size() << " blocks"); NOTIFY_RESPONSE_CHAIN_ENTRY::request r; if(!m_core.find_blockchain_supplement(arg.block_ids, r)) { @@ -1048,7 +1050,7 @@ namespace cryptonote template int t_cryptonote_protocol_handler::handle_response_chain_entry(int command, NOTIFY_RESPONSE_CHAIN_ENTRY::request& arg, cryptonote_connection_context& context) { - LOG_PRINT_CCONTEXT_L2("NOTIFY_RESPONSE_CHAIN_ENTRY: m_block_ids.size()=" << arg.m_block_ids.size() + MLOG_P2P_MESSAGE("Received NOTIFY_RESPONSE_CHAIN_ENTRY: m_block_ids.size()=" << arg.m_block_ids.size() << ", m_start_height=" << arg.start_height << ", m_total_height=" << arg.total_height); if(!arg.m_block_ids.size()) From 1e8cc6764e7c814118ac5078faebc8735d4d3597 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sun, 22 Jan 2017 10:34:13 +0000 Subject: [PATCH 2/2] mlog: allow using numerical level as default prefix eg, 2,foo:ERROR,bar:INFO --- contrib/epee/src/mlog.cpp | 62 +++++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 25 deletions(-) diff --git a/contrib/epee/src/mlog.cpp b/contrib/epee/src/mlog.cpp index 4e4217210..139e7b7d6 100644 --- a/contrib/epee/src/mlog.cpp +++ b/contrib/epee/src/mlog.cpp @@ -108,6 +108,32 @@ void mlog_configure(const std::string &filename_base, bool console) mlog_set_categories(monero_log); } +static const char *get_default_categories(int level) +{ + const char *categories = ""; + switch (level) + { + case 0: + categories = "*:FATAL,net*:FATAL,global:INFO,verify:FATAL,stacktrace:INFO"; + break; + case 1: + categories = "*:WARNING,global:INFO,stacktrace:INFO"; + break; + case 2: + categories = "*:DEBUG"; + break; + case 3: + categories = "*:TRACE"; + break; + case 4: + categories = "*:TRACE"; + break; + default: + break; + } + return categories; +} + void mlog_set_categories(const char *categories) { el::Loggers::setCategories(categories); @@ -117,30 +143,9 @@ void mlog_set_categories(const char *categories) // maps epee style log level to new logging system void mlog_set_log_level(int level) { - const char *settings = NULL; - switch (level) - { - case 0: - settings = "*:FATAL,net*:FATAL,global:INFO,verify:FATAL,stacktrace:INFO"; - break; - case 1: - settings = "*:WARNING,global:INFO,stacktrace:INFO"; - break; - case 2: - settings = "*:DEBUG"; - break; - case 3: - settings = "*:TRACE"; - break; - case 4: - settings = "*:TRACE"; - break; - default: - return; - } - - el::Loggers::setCategories(settings); - MINFO("Mew log categories: " << settings); + const char *categories = get_default_categories(level); + el::Loggers::setCategories(categories); + MINFO("Mew log categories: " << categories); } void mlog_set_log(const char *log) @@ -151,7 +156,14 @@ void mlog_set_log(const char *log) level = strtoll(log, &ptr, 10); if (ptr && *ptr) { - mlog_set_categories(log); + // we can have a default level, eg, 2,foo:ERROR + if (*ptr == ',') { + std::string new_categories = std::string(get_default_categories(level)) + ptr; + mlog_set_categories(new_categories.c_str()); + } + else { + mlog_set_categories(log); + } } else if (level >= 0 && level <= 4) {