diff --git a/Control/Monad/Logger.hs b/Control/Monad/Logger.hs
--- a/Control/Monad/Logger.hs
+++ b/Control/Monad/Logger.hs
@@ -83,7 +83,10 @@
 import qualified Control.Monad.Trans.Class as Trans
 
 import Control.Monad.IO.Class (MonadIO (liftIO))
-import Control.Monad.Trans.Resource (MonadResource (liftResourceT), MonadThrow (monadThrow))
+import Control.Monad.Trans.Resource (MonadResource (liftResourceT), MonadThrow, monadThrow)
+#if MIN_VERSION_resourcet(1,1,0)
+import Control.Monad.Trans.Resource (throwM)
+#endif
 
 import Control.Monad.Trans.Identity ( IdentityT)
 import Control.Monad.Trans.List     ( ListT    )
@@ -132,8 +135,8 @@
 
 instance Lift LogLevel where
     lift LevelDebug = [|LevelDebug|]
-    lift LevelInfo = [|LevelInfo|]
-    lift LevelWarn = [|LevelWarn|]
+    lift LevelInfo  = [|LevelInfo|]
+    lift LevelWarn  = [|LevelWarn|]
     lift LevelError = [|LevelError|]
     lift (LevelOther x) = [|LevelOther $ pack $(lift $ unpack x)|]
 
@@ -259,8 +262,13 @@
 instance MonadIO m => MonadIO (NoLoggingT m) where
     liftIO = Trans.lift . liftIO
 
+#if MIN_VERSION_resourcet(1,1,0)
 instance MonadThrow m => MonadThrow (NoLoggingT m) where
+    throwM = Trans.lift . throwM
+#else
+instance MonadThrow m => MonadThrow (NoLoggingT m) where
     monadThrow = Trans.lift . monadThrow
+#endif
 
 instance MonadResource m => MonadResource (NoLoggingT m) where
     liftResourceT = Trans.lift . liftResourceT
@@ -310,8 +318,13 @@
 instance MonadIO m => MonadIO (LoggingT m) where
     liftIO = Trans.lift . liftIO
 
+#if MIN_VERSION_resourcet(1,1,0)
 instance MonadThrow m => MonadThrow (LoggingT m) where
+    throwM = Trans.lift . throwM
+#else
+instance MonadThrow m => MonadThrow (LoggingT m) where
     monadThrow = Trans.lift . monadThrow
+#endif
 
 instance MonadResource m => MonadResource (LoggingT m) where
     liftResourceT = Trans.lift . liftResourceT
@@ -365,6 +378,11 @@
     toBS = toByteString . logStrBuilder
 #endif
 
+defaultLogLevelStr :: LogLevel -> LogStr
+defaultLogLevelStr level = case level of
+    LevelOther t -> toLogStr t
+    _            -> toLogStr $ S8.pack $ drop 5 $ show level
+
 defaultLogStr :: Loc
               -> LogSource
               -> LogLevel
@@ -376,10 +394,7 @@
 #endif
 defaultLogStr loc src level msg =
 #if MIN_VERSION_fast_logger(0, 2, 0)
-    "[" `mappend`
-    (case level of
-        LevelOther t -> toLogStr t
-        _ -> toLogStr $ S8.pack $ drop 5 $ show level) `mappend`
+    "[" `mappend` defaultLogLevelStr level `mappend`
     (if T.null src
         then mempty
         else "#" `mappend` toLogStr src) `mappend`
@@ -415,7 +430,19 @@
       where
         line = show . fst . loc_start
         char = show . snd . loc_start
+{-
+defaultLogStrWithoutLoc ::
+    LogSource -> LogLevel -> LogStr -> LogStr
+defaultLogStrWithoutLoc loc src level msg =
+    "[" `mappend` defaultLogLevelStr level `mappend`
+    (if T.null src
+        then mempty
+        else "#" `mappend` toLogStr src) `mappend`
+    "] " `mappend`
+    msg `mappend` "\n"
+-}
 
+
 -- | Run a block using a @MonadLogger@ instance which prints to stderr.
 --
 -- Since 0.2.2
@@ -477,42 +504,35 @@
 defaultLoc :: Loc
 defaultLoc = Loc "<unknown>" "<unknown>" "<unknown>" (0,0) (0,0)
 
+logWithoutLoc :: (MonadLogger m, ToLogStr msg) => LogSource -> LogLevel -> msg -> m ()
+logWithoutLoc = monadLoggerLog defaultLoc
+
 logDebugN :: MonadLogger m => Text -> m ()
-logDebugN msg =
-    monadLoggerLog defaultLoc "" LevelDebug msg
+logDebugN = logWithoutLoc "" LevelDebug
 
 logInfoN :: MonadLogger m => Text -> m ()
-logInfoN msg =
-    monadLoggerLog defaultLoc "" LevelInfo msg
+logInfoN = logWithoutLoc "" LevelInfo
 
 logWarnN :: MonadLogger m => Text -> m ()
-logWarnN msg =
-    monadLoggerLog defaultLoc "" LevelWarn msg
+logWarnN = logWithoutLoc "" LevelWarn
 
 logErrorN :: MonadLogger m => Text -> m ()
-logErrorN msg =
-    monadLoggerLog defaultLoc "" LevelError msg
+logErrorN = logWithoutLoc "" LevelError
 
 logOtherN :: MonadLogger m => LogLevel -> Text -> m ()
-logOtherN level msg =
-    monadLoggerLog defaultLoc "" level msg
+logOtherN = logWithoutLoc ""
 
 logDebugNS :: MonadLogger m => Text -> Text -> m ()
-logDebugNS src msg =
-    monadLoggerLog defaultLoc src LevelDebug msg
+logDebugNS src = logWithoutLoc src LevelDebug
 
 logInfoNS :: MonadLogger m => Text -> Text -> m ()
-logInfoNS src msg =
-    monadLoggerLog defaultLoc src LevelInfo msg
+logInfoNS src = logWithoutLoc src LevelInfo
 
 logWarnNS :: MonadLogger m => Text -> Text -> m ()
-logWarnNS src msg =
-    monadLoggerLog defaultLoc src LevelWarn msg
+logWarnNS src = logWithoutLoc src LevelWarn
 
 logErrorNS :: MonadLogger m => Text -> Text -> m ()
-logErrorNS src msg =
-    monadLoggerLog defaultLoc src LevelError msg
+logErrorNS src = logWithoutLoc src LevelError
 
 logOtherNS :: MonadLogger m => Text -> LogLevel -> Text -> m ()
-logOtherNS src level msg =
-    monadLoggerLog defaultLoc src level msg
+logOtherNS = logWithoutLoc
diff --git a/monad-logger.cabal b/monad-logger.cabal
--- a/monad-logger.cabal
+++ b/monad-logger.cabal
@@ -1,5 +1,5 @@
 name:                monad-logger
-version:             0.3.4.0
+version:             0.3.4.1
 synopsis:            A class of monads which can log messages.
 description:         This package uses template-haskell for determining source code locations of messages.
 homepage:            https://github.com/kazu-yamamoto/logger
@@ -26,8 +26,8 @@
                      , stm
                      , stm-chans
                      , lifted-base
-                     , resourcet          >= 0.4       && < 0.5
-                     , conduit            >= 1.0       && < 1.1
+                     , resourcet          >= 0.4       && < 1.2
+                     , conduit            >= 1.0       && < 1.2
                      , fast-logger        >= 2.0       && < 2.2
                      , transformers-base
                      , monad-control
