diff --git a/lib/vagrant/environment.rb b/lib/vagrant/environment.rb
index <HASH>..<HASH> 100644
--- a/lib/vagrant/environment.rb
+++ b/lib/vagrant/environment.rb
@@ -158,6 +158,7 @@ module Vagrant
     # logger which should be used to log internals only. For outward
     # facing information, use {#ui}.
     def logger
+      return parent.logger if parent
       @logger ||= Util::ResourceLogger.new(resource, self)
     end
 
diff --git a/test/vagrant/environment_test.rb b/test/vagrant/environment_test.rb
index <HASH>..<HASH> 100644
--- a/test/vagrant/environment_test.rb
+++ b/test/vagrant/environment_test.rb
@@ -254,6 +254,15 @@ class EnvironmentTest < Test::Unit::TestCase
       assert_equal result, @env.logger
       assert_equal result, @env.logger
     end
+
+    should "return the parent's local data if a parent exists" do
+      @env = mock_environment
+      @env.stubs(:parent).returns(mock_environment)
+      result = @env.parent.logger
+
+      Vagrant::Util::ResourceLogger.expects(:new).never
+      assert_equal result, @env.logger
+    end
   end
 
   context "loading" do
Only initialize a logger on the parent environment