diff --git a/lib/serverengine/daemon_logger.rb b/lib/serverengine/daemon_logger.rb
index <HASH>..<HASH> 100644
--- a/lib/serverengine/daemon_logger.rb
+++ b/lib/serverengine/daemon_logger.rb
@@ -19,6 +19,15 @@ module ServerEngine
 
   require 'logger'
 
+  class ::Logger::LogDevice
+    def reopen!
+      if filename = @filename
+        @dev.reopen(filename, 'a')
+        @dev.sync = true
+      end
+    end
+  end
+
   class DaemonLogger < Logger
     def initialize(logdev, config={})
       @rotate_age = config[:log_rotate_age] || 5
diff --git a/spec/daemon_logger_spec.rb b/spec/daemon_logger_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/daemon_logger_spec.rb
+++ b/spec/daemon_logger_spec.rb
@@ -11,9 +11,13 @@ describe ServerEngine::DaemonLogger do
   it 'reopen' do
     subject.warn "ABCDEF"
     File.open('tmp/se1.log', "w") {|f| }
-    subject.warn "test2"
 
+    subject.warn "test2"
     File.read('tmp/se1.log').should_not =~ /ABCDEF/
+
+    subject.reopen!
+    subject.warn "test3"
+    File.read('tmp/se1.log').should =~ /test3/
   end
 
   it 'reset path' do
fixed DaemonLogger at Ruby >= <I>