diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 3.0.5
+
+* recovering backward compatibility for newFileLoggerSet.
+
 ## 3.0.4
 
 * New API: `newFastLogger1` which use only one capability.
diff --git a/System/Log/FastLogger.hs b/System/Log/FastLogger.hs
--- a/System/Log/FastLogger.hs
+++ b/System/Log/FastLogger.hs
@@ -112,7 +112,7 @@
     LogNone                        -> return (const noOp, noOp)
     LogStdout bsize                -> newStdoutLoggerSet bsize >>= stdLoggerInit
     LogStderr bsize                -> newStderrLoggerSet bsize >>= stdLoggerInit
-    LogFileNoRotate fp bsize       -> newFileLoggerSet bsize mn fp >>= fileLoggerInit
+    LogFileNoRotate fp bsize       -> newFileLoggerSetN bsize mn fp >>= fileLoggerInit
     LogFile fspec bsize            -> rotateLoggerInit fspec bsize
     LogFileTimedRotate fspec bsize -> timedRotateLoggerInit fspec bsize
     LogCallback cb flush           -> return (\str -> cb str >> flush, noOp)
@@ -120,7 +120,7 @@
     stdLoggerInit lgrset = return (pushLogStr lgrset, rmLoggerSet lgrset)
     fileLoggerInit lgrset = return (pushLogStr lgrset, rmLoggerSet lgrset)
     rotateLoggerInit fspec bsize = do
-        lgrset <- newFileLoggerSet bsize mn $ log_file fspec
+        lgrset <- newFileLoggerSetN bsize mn $ log_file fspec
         ref <- newIORef (0 :: Int)
         mvar <- newMVar ()
         let logger str = do
@@ -131,7 +131,7 @@
     timedRotateLoggerInit fspec bsize = do
         cache <- newTimeCache $ timed_timefmt fspec
         now <- cache
-        lgrset <- newFileLoggerSet bsize mn $ prefixTime now $ timed_log_file fspec
+        lgrset <- newFileLoggerSetN bsize mn $ prefixTime now $ timed_log_file fspec
         ref <- newIORef now
         mvar <- newMVar lgrset
         let logger str = do
@@ -155,7 +155,7 @@
     LogNone                        -> return (const noOp, noOp)
     LogStdout bsize                -> newStdoutLoggerSet bsize >>= stdLoggerInit
     LogStderr bsize                -> newStderrLoggerSet bsize >>= stdLoggerInit
-    LogFileNoRotate fp bsize       -> newFileLoggerSet bsize Nothing fp >>= fileLoggerInit
+    LogFileNoRotate fp bsize       -> newFileLoggerSet bsize fp >>= fileLoggerInit
     LogFile fspec bsize            -> rotateLoggerInit fspec bsize
     LogFileTimedRotate fspec bsize -> timedRotateLoggerInit fspec bsize
     LogCallback cb flush           -> return (\f -> tgetter >>= cb . f >> flush, noOp)
@@ -163,7 +163,7 @@
     stdLoggerInit lgrset = return ( \f -> tgetter >>= pushLogStr lgrset . f, rmLoggerSet lgrset)
     fileLoggerInit lgrset = return (\f -> tgetter >>= pushLogStr lgrset . f, rmLoggerSet lgrset)
     rotateLoggerInit fspec bsize = do
-        lgrset <- newFileLoggerSet bsize Nothing $ log_file fspec
+        lgrset <- newFileLoggerSet bsize $ log_file fspec
         ref <- newIORef (0 :: Int)
         mvar <- newMVar ()
         let logger f = do
@@ -175,7 +175,7 @@
     timedRotateLoggerInit fspec bsize = do
         cache <- newTimeCache $ timed_timefmt fspec
         now <- cache
-        lgrset <- newFileLoggerSet bsize Nothing $ prefixTime now $ timed_log_file fspec
+        lgrset <- newFileLoggerSet bsize $ prefixTime now $ timed_log_file fspec
         ref <- newIORef now
         mvar <- newMVar lgrset
         let logger f = do
diff --git a/System/Log/FastLogger/LoggerSet.hs b/System/Log/FastLogger/LoggerSet.hs
--- a/System/Log/FastLogger/LoggerSet.hs
+++ b/System/Log/FastLogger/LoggerSet.hs
@@ -4,6 +4,7 @@
   -- * Creating a logger set
     LoggerSet
   , newFileLoggerSet
+  , newFileLoggerSetN
   , newStdoutLoggerSet
   , newStderrLoggerSet
   , newLoggerSet
@@ -38,9 +39,13 @@
 data LoggerSet = LoggerSet (Maybe FilePath) (IORef FD) (Array Int Logger) (IO ())
 
 -- | Creating a new 'LoggerSet' using a file.
-newFileLoggerSet :: BufSize -> Maybe Int -> FilePath -> IO LoggerSet
-newFileLoggerSet size mn file = openFileFD file >>= newFDLoggerSet size mn (Just file)
+newFileLoggerSet :: BufSize -> FilePath -> IO LoggerSet
+newFileLoggerSet size file = openFileFD file >>= newFDLoggerSet size Nothing (Just file)
 
+-- | Creating a new 'LoggerSet' using a file.
+newFileLoggerSetN :: BufSize -> Maybe Int -> FilePath -> IO LoggerSet
+newFileLoggerSetN size mn file = openFileFD file >>= newFDLoggerSet size mn (Just file)
+
 -- | Creating a new 'LoggerSet' using stdout.
 newStdoutLoggerSet :: BufSize -> IO LoggerSet
 newStdoutLoggerSet size = getStdoutFD >>= newFDLoggerSet size Nothing Nothing
@@ -55,7 +60,7 @@
 --   stdout is used.
 --   Please note that the minimum 'BufSize' is 1.
 newLoggerSet :: BufSize -> Maybe Int -> Maybe FilePath -> IO LoggerSet
-newLoggerSet size mn = maybe (newStdoutLoggerSet size) (newFileLoggerSet size mn)
+newLoggerSet size mn = maybe (newStdoutLoggerSet size) (newFileLoggerSetN size mn)
 
 -- | Creating a new 'LoggerSet' using a FD.
 newFDLoggerSet :: BufSize -> Maybe Int -> Maybe FilePath -> FD -> IO LoggerSet
diff --git a/fast-logger.cabal b/fast-logger.cabal
--- a/fast-logger.cabal
+++ b/fast-logger.cabal
@@ -1,5 +1,5 @@
 Name:                   fast-logger
-Version:                3.0.4
+Version:                3.0.5
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
diff --git a/test/FastLoggerSpec.hs b/test/FastLoggerSpec.hs
--- a/test/FastLoggerSpec.hs
+++ b/test/FastLoggerSpec.hs
@@ -40,9 +40,9 @@
 
 nullLogger :: IO LoggerSet
 #ifdef mingw32_HOST_OS
-nullLogger = newFileLoggerSet 4096 Nothing "nul"
+nullLogger = newFileLoggerSet 4096 "nul"
 #else
-nullLogger = newFileLoggerSet 4096 Nothing "/dev/null"
+nullLogger = newFileLoggerSet 4096 "/dev/null"
 #endif
 
 safeForLarge :: [Int] -> IO ()
@@ -51,7 +51,7 @@
 safeForLarge' :: Int -> IO ()
 safeForLarge' n = flip finally (cleanup tmpfile) $ do
     cleanup tmpfile
-    lgrset <- newFileLoggerSet defaultBufSize Nothing tmpfile
+    lgrset <- newFileLoggerSet defaultBufSize tmpfile
     let xs = toLogStr $ BS.pack $ take (abs n) (cycle ['a'..'z'])
         lf = "x"
     pushLogStr lgrset $ xs <> lf
@@ -73,7 +73,7 @@
     tmpfile = "test/temp"
     logAll file = do
         cleanup tmpfile
-        lgrset <- newFileLoggerSet 512 Nothing tmpfile
+        lgrset <- newFileLoggerSet 512 tmpfile
         src <- BS.readFile file
         let bs = (<> "\n") . toLogStr <$> BS.lines src
         mapM_ (pushLogStr lgrset) bs
