diff --git a/System/Log/FastLogger.hs b/System/Log/FastLogger.hs
--- a/System/Log/FastLogger.hs
+++ b/System/Log/FastLogger.hs
@@ -1,13 +1,19 @@
+-- | This module provides a fast logging system which
+--   scales on multicore environments (i.e. +RTS -N\<x\>).
 {-# LANGUAGE BangPatterns, CPP #-}
 
 module System.Log.FastLogger (
   -- * Creating a logger set
-    BufSize
-  , defaultBufSize
-  , LoggerSet
+    LoggerSet
+  , newFileLoggerSet
+  , newStdoutLoggerSet
+  , newStderrLoggerSet
   , newLoggerSet
+  -- * Buffer size
+  , BufSize
+  , defaultBufSize
+  -- * Renewing and removing a logger set
   , renewLoggerSet
-  -- * Removing a logger set
   , rmLoggerSet
   -- * Log messages
   , LogStr
@@ -28,7 +34,7 @@
 import Data.Array (Array, listArray, (!))
 import Data.Maybe (isJust)
 import GHC.IO.Device (close)
-import GHC.IO.FD (FD(..), openFile, stdout)
+import GHC.IO.FD (FD(..), openFile, stderr, stdout)
 import GHC.IO.IOMode (IOMode(..))
 import System.Log.FastLogger.File
 import System.Log.FastLogger.IO
@@ -50,15 +56,29 @@
 --   A buffer is prepared for each capability.
 data LoggerSet = LoggerSet (Maybe FilePath) (IORef FD) (Array Int Logger)
 
+-- | Creating a new 'LoggerSet' using a file.
+newFileLoggerSet :: BufSize -> FilePath -> IO LoggerSet
+newFileLoggerSet size file = logOpen file >>= newFDLoggerSet size (Just file)
+
+-- | Creating a new 'LoggerSet' using stdout.
+newStdoutLoggerSet :: BufSize -> IO LoggerSet
+newStdoutLoggerSet size = newFDLoggerSet size Nothing stdout
+
+-- | Creating a new 'LoggerSet' using stderr.
+newStderrLoggerSet :: BufSize -> IO LoggerSet
+newStderrLoggerSet size = newFDLoggerSet size Nothing stderr
+
+{-# DEPRECATED newLoggerSet "Use newFileLoggerSet etc instead" #-}
 -- | Creating a new 'LoggerSet'.
 --   If 'Nothing' is specified to the second argument,
 --   stdout is used.
 --   Please note that the minimum 'BufSize' is 1.
 newLoggerSet :: BufSize -> Maybe FilePath -> IO LoggerSet
-newLoggerSet size mfile = do
-    fd <- case mfile of
-        Nothing   -> return stdout
-        Just file -> logOpen file
+newLoggerSet size = maybe (newStdoutLoggerSet size) (newFileLoggerSet size)
+
+-- | Creating a new 'LoggerSet' using a FD.
+newFDLoggerSet :: BufSize -> Maybe FilePath -> FD -> IO LoggerSet
+newFDLoggerSet size mfile fd = do
     n <- getNumCapabilities
     loggers <- replicateM n $ newLogger (max 1 size)
     let arr = listArray (0,n-1) loggers
@@ -66,6 +86,8 @@
     return $ LoggerSet mfile fref arr
 
 -- | Writing a log message to the corresponding buffer.
+--   If the buffer becomes full, the log messages in the buffer
+--   are written to its corresponding file, stdout, or stderr.
 pushLogStr :: LoggerSet -> LogStr -> IO ()
 pushLogStr (LoggerSet _ fref arr) logmsg = do
     (i, _) <- myThreadId >>= threadCapability
@@ -74,6 +96,8 @@
     pushLog fd logger logmsg
 
 -- | Flushing log messages in buffers.
+--   This function must be called explicitly when the program is
+--   being terminated.
 flushLogStr :: LoggerSet -> IO ()
 flushLogStr (LoggerSet _ fref arr) = do
     n <- getNumCapabilities
@@ -83,6 +107,7 @@
     flushIt fd i = flushLog fd (arr ! i)
 
 -- | Renewing the internal file information in 'LoggerSet'.
+--   This does nothing for stdout and stderr.
 renewLoggerSet :: LoggerSet -> IO ()
 renewLoggerSet (LoggerSet Nothing     _    _) = return ()
 renewLoggerSet (LoggerSet (Just file) fref _) = do
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:                2.1.2
+Version:                2.1.3
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
@@ -10,6 +10,10 @@
 Cabal-Version:          >= 1.8
 Build-Type:             Simple
 
+Flag UseByteString102
+  Description: Use bytestring 0.10.2 or newer
+  Default: True
+
 Library
   GHC-Options:          -Wall
   Exposed-Modules:      System.Log.FastLogger
@@ -20,12 +24,15 @@
                         System.Log.FastLogger.Logger
   Build-Depends:        base >= 4 && < 5
                       , array
-                      -- FIXME: blaze-builder should be removed someday
-                      , blaze-builder
-                      , bytestring
                       , directory
                       , filepath
                       , text
+
+  if flag(UseByteString102)
+    Build-Depends:      bytestring >= 0.10.2
+  else
+    Build-Depends:      blaze-builder
+                      , bytestring < 0.10.2
 
 Test-Suite spec
     Main-Is:         Spec.hs
