From 819a4d28a47b49e05374b5d05573a9b57bd3fa6a Mon Sep 17 00:00:00 2001 From: Chris Roberts Date: Wed, 13 Oct 2021 17:19:24 -0700 Subject: [PATCH] Reconfigure legacy vagrant to utilize hclog --- lib/vagrant.rb | 2 +- lib/vagrant/shared_helpers.rb | 5 +++++ lib/vagrant/util.rb | 1 + lib/vagrant/util/logging_formatter.rb | 14 ++++++++++++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/lib/vagrant.rb b/lib/vagrant.rb index 64abb3838..651d53452 100644 --- a/lib/vagrant.rb +++ b/lib/vagrant.rb @@ -88,7 +88,7 @@ if ENV["VAGRANT_LOG"] && ENV["VAGRANT_LOG"] != "" logger = VagrantLogger.new("vagrant") if ENV["VAGRANT_LOG_FILE"] && ENV["VAGRANT_LOG_FILE"] != "" - logger.outputters = Log4r::FileOutputter.new("vagrant", {:filename=>ENV["VAGRANT_LOG_FILE"]} ) + logger.outputters = Log4r::FileOutputter.new("vagrant", filename: ENV["VAGRANT_LOG_FILE"]) else logger.outputters = Log4r::Outputter.stderr end diff --git a/lib/vagrant/shared_helpers.rb b/lib/vagrant/shared_helpers.rb index fcf385f8f..f564b0211 100644 --- a/lib/vagrant/shared_helpers.rb +++ b/lib/vagrant/shared_helpers.rb @@ -236,6 +236,11 @@ module Vagrant def self.enable_server_mode! if !server_mode? SERVER_MODE_CALLBACKS.each(&:call) + l = VagrantLogger.new("") + lv = VagrantLogger.new("vagrant") + l.outputters = Log4r::Outputter.stderr + lv.outputters = Log4r::Outputter.stderr + Log4r::Outputter.stderr.formatter = Util::HCLogFormatter.new end @_server_mode = true end diff --git a/lib/vagrant/util.rb b/lib/vagrant/util.rb index c135dacc2..d37579db7 100644 --- a/lib/vagrant/util.rb +++ b/lib/vagrant/util.rb @@ -18,6 +18,7 @@ module Vagrant autoload :GuestHosts, 'vagrant/util/guest_hosts' autoload :GuestInspection, 'vagrant/util/guest_inspection' autoload :HashWithIndifferentAccess, 'vagrant/util/hash_with_indifferent_access' + autoload :HCLogFormatter, 'vagrant/util/logging_formatter' autoload :InstallShellConfig, 'vagrant/util/install_cli_autocomplete' autoload :InstallZSHShellConfig, 'vagrant/util/install_cli_autocomplete' autoload :InstallBashShellConfig, 'vagrant/util/install_cli_autocomplete' diff --git a/lib/vagrant/util/logging_formatter.rb b/lib/vagrant/util/logging_formatter.rb index 4007f06b5..bc7f74e62 100644 --- a/lib/vagrant/util/logging_formatter.rb +++ b/lib/vagrant/util/logging_formatter.rb @@ -24,5 +24,19 @@ module Vagrant CredentialScrubber.desensitize(msg) end end + + class HCLogFormatter < Log4r::BasicFormatter + def format(event) + d = { + "@timestamp" => Time.now.strftime("%Y-%m-%dT%H:%M:%S.%6N%:z"), + "@level" => Log4r::LNAMES[event.level].downcase, + "@module" => event.fullname.gsub("::", "."), + "@message" => format_object(event.data), + } + d["@caller"] = event.tracer[0] if event.tracer + + d.to_json + "\n" + end + end end end