diff --git a/lib/logger.rb b/lib/logger.rb
index 4940999..c632a5a 100644
--- a/lib/logger.rb
+++ b/lib/logger.rb
@@ -546,6 +546,7 @@ def fatal!; self.level = FATAL; end
   #   new entries are appended.
   # - An IO stream (typically +$stdout+, +$stderr+. or an open file):
   #   entries are to be written to the given stream.
+  # - An instance of Logger::LogDevice, such as the #logdev of another Logger.
   # - +nil+ or +File::NULL+: no entries are to be written.
   #
   # Examples:
@@ -587,13 +588,23 @@ def initialize(logdev, shift_age = 0, shift_size = 1048576, level: DEBUG,
     @logdev = nil
     @level_override = {}
     if logdev && logdev != File::NULL
-      @logdev = LogDevice.new(logdev, shift_age: shift_age,
-        shift_size: shift_size,
-        shift_period_suffix: shift_period_suffix,
-        binmode: binmode)
+      if logdev.is_a?(LogDevice)
+        @logdev = logdev
+      else
+        @logdev = LogDevice.new(logdev, shift_age: shift_age,
+          shift_size: shift_size,
+          shift_period_suffix: shift_period_suffix,
+          binmode: binmode)
+      end
     end
   end
 
+  # The underlying log device.
+  #
+  # This is the first argument passed to the constructor, wrapped in a
+  # Logger::LogDevice, along with the binmode flag and rotation options.
+  attr_reader :logdev
+
   # Sets the logger's output stream:
   #
   # - If +logdev+ is +nil+, reopens the current output stream.
diff --git a/test/logger/test_logger.rb b/test/logger/test_logger.rb
index 37d0f58..aefe5e6 100644
--- a/test/logger/test_logger.rb
+++ b/test/logger/test_logger.rb
@@ -168,6 +168,16 @@ def test_initialize
     assert_nil(logger.datetime_format)
   end
 
+  def test_logdev
+    logger = Logger.new(STDERR)
+    assert_instance_of(Logger::LogDevice, logger.logdev)
+
+    logdev = Logger::LogDevice.new(STDERR)
+    logger = Logger.new(logdev)
+    assert_instance_of(Logger::LogDevice, logger.logdev)
+    assert_equal(STDERR, logger.logdev.dev)
+  end
+
   def test_initialize_with_level
     # default
     logger = Logger.new(STDERR)