From 2439342aba4d6114fbaca2b7ca37093221c593d7 Mon Sep 17 00:00:00 2001 From: Alan Foster Date: Tue, 23 Jun 2020 10:18:13 +0100 Subject: [PATCH] Add consistent error logging for module loading --- lib/msf/core/modules/loader/base.rb | 12 +----------- lib/rex/logging/log_dispatcher.rb | 6 +++++- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/lib/msf/core/modules/loader/base.rb b/lib/msf/core/modules/loader/base.rb index 66196ec086f12..be290f6e914e8 100644 --- a/lib/msf/core/modules/loader/base.rb +++ b/lib/msf/core/modules/loader/base.rb @@ -414,17 +414,7 @@ def load_error(module_path, error) # backtraces should not appear. module_manager.module_load_error_by_path[module_path] = "#{error.class} #{error}" - log_lines = [] - log_lines << "#{module_path} failed to load due to the following error:" - log_lines << error.class.to_s - log_lines << error.to_s - if error.backtrace - log_lines << "Call stack:" - log_lines += error.backtrace - end - - log_message = log_lines.join(' ') - elog(log_message) + elog("#{module_path} failed to load", error: error) end # Records the load warning to {Msf::ModuleManager::Loading#module_load_warnings} and the log. diff --git a/lib/rex/logging/log_dispatcher.rb b/lib/rex/logging/log_dispatcher.rb index 2cd3345d81e9b..aceedf6588417 100644 --- a/lib/rex/logging/log_dispatcher.rb +++ b/lib/rex/logging/log_dispatcher.rb @@ -160,7 +160,11 @@ def elog(msg, src = 'core', log_level = 0, error: nil) else error_details = "#{error.class} #{error.message}" if get_log_level(src) >= BACKTRACE_LOG_LEVEL - error_details << "\nCall stack:\n#{error.backtrace.join("\n")}" + if error.backtrace + error_details << "\nCall stack:\n#{error.backtrace.join("\n")}" + else + error_details << "\nCall stack:\nNone" + end end if msg.is_a?(Exception)