diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # Change log
 
+## 0.2.0.0
+
+* Updated for postgresql-tx-0.2.0.0.
+* Added an `Unsafe` module with `unsafeRunLoggerIOInTxM`.
+
 ## 0.1.0.0
 
-Initial release
+* Initial release
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,6 +1,6 @@
 name:                postgresql-tx-monad-logger
-version:             0.1.0.0
-github:              "simspace/postgresql-tx/monad-logger"
+version:             0.2.0.0
+github:              "simspace/postgresql-tx"
 license:             BSD3
 license-file:        LICENSE.md
 author:              "Cary Robbins"
@@ -21,7 +21,7 @@
 dependencies:
 - base >= 4.7 && < 5
 - monad-logger >= 0.3.32 && < 0.4
-- postgresql-tx >= 0.1.0.0 && < 0.2
+- postgresql-tx >= 0.2.0.0 && < 0.3
 
 library:
   source-dirs: src
diff --git a/postgresql-tx-monad-logger.cabal b/postgresql-tx-monad-logger.cabal
--- a/postgresql-tx-monad-logger.cabal
+++ b/postgresql-tx-monad-logger.cabal
@@ -1,13 +1,13 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.33.0.
+-- This file has been generated from package.yaml by hpack version 0.31.2.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 92765a23465a542f737f8281f341cfbb58f06d8b0868c80f4f0c1a5a75950ab2
+-- hash: 5d7a346f18014ef008263c19cbdb04cda5e384511dbc3450ebcfcb9ee61f706b
 
 name:           postgresql-tx-monad-logger
-version:        0.1.0.0
+version:        0.2.0.0
 synopsis:       postgresql-tx interfacing for use with monad-logger.
 description:    Please see the README on GitHub at <https://github.com/simspace/postgresql-tx#readme>
 category:       Database
@@ -27,11 +27,11 @@
 source-repository head
   type: git
   location: https://github.com/simspace/postgresql-tx
-  subdir: monad-logger
 
 library
   exposed-modules:
       Database.PostgreSQL.Tx.MonadLogger
+      Database.PostgreSQL.Tx.MonadLogger.Unsafe
   other-modules:
       Paths_postgresql_tx_monad_logger
   hs-source-dirs:
@@ -40,5 +40,5 @@
   build-depends:
       base >=4.7 && <5
     , monad-logger >=0.3.32 && <0.4
-    , postgresql-tx >=0.1.0.0 && <0.2
+    , postgresql-tx >=0.2.0.0 && <0.3
   default-language: Haskell2010
diff --git a/src/Database/PostgreSQL/Tx/MonadLogger.hs b/src/Database/PostgreSQL/Tx/MonadLogger.hs
--- a/src/Database/PostgreSQL/Tx/MonadLogger.hs
+++ b/src/Database/PostgreSQL/Tx/MonadLogger.hs
@@ -1,18 +1,26 @@
+{-# LANGUAGE BlockArguments #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE TypeApplications #-}
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE UndecidableInstances #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 module Database.PostgreSQL.Tx.MonadLogger where
 
-import Database.PostgreSQL.Tx (TxM, Tx(TxEnv, tx), UnsafeTx(unsafeIOTx))
-import Control.Monad.Logger (LoggingT(runLoggingT), mapLoggingT, Loc, LogSource, LogLevel, LogStr)
+import Control.Monad.Logger (MonadLogger(monadLoggerLog), Loc, LogLevel, LogSource, LogStr, toLogStr)
+import Database.PostgreSQL.Tx (TxEnv, TxM, askTxEnv)
+import Database.PostgreSQL.Tx.Unsafe (unsafeRunIOInTxM)
 
+-- | A logging function compatible with @monad-logger@.
+--
+-- @since 0.1.0.0
 type Logger = Loc -> LogSource -> LogLevel -> LogStr -> IO ()
 
-instance Tx (LoggingT TxM) where
-  type TxEnv (LoggingT TxM) = Logger
-  tx = flip runLoggingT
-
-instance (UnsafeTx io t) => UnsafeTx (LoggingT io) (LoggingT t) where
-  unsafeIOTx = mapLoggingT unsafeIOTx
+-- | Orphan instance for running @monad-logger@ functions in 'TxM'.
+--
+-- @since 0.2.0.0
+instance (TxEnv Logger r) => MonadLogger (TxM r) where
+  monadLoggerLog loc src lvl msg = do
+    logger <- askTxEnv
+    unsafeRunIOInTxM $ logger loc src lvl (toLogStr msg)
diff --git a/src/Database/PostgreSQL/Tx/MonadLogger/Unsafe.hs b/src/Database/PostgreSQL/Tx/MonadLogger/Unsafe.hs
new file mode 100644
--- /dev/null
+++ b/src/Database/PostgreSQL/Tx/MonadLogger/Unsafe.hs
@@ -0,0 +1,19 @@
+{-# LANGUAGE BlockArguments #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeApplications #-}
+module Database.PostgreSQL.Tx.MonadLogger.Unsafe where
+
+import Control.Monad.Logger (LoggingT(runLoggingT))
+import Database.PostgreSQL.Tx (TxEnv, TxM, askTxEnv)
+import Database.PostgreSQL.Tx.MonadLogger (Logger)
+import Database.PostgreSQL.Tx.Unsafe (unsafeRunIOInTxM)
+
+-- | Promote a 'LoggingT' over 'IO' to 'TxM'.
+-- Use this function with care - arbitrary 'IO' should only be run
+-- within a transaction when truly necessary.
+--
+-- @since 0.2.0.0
+unsafeRunLoggerIOInTxM :: (TxEnv Logger r) => LoggingT IO a -> TxM r a
+unsafeRunLoggerIOInTxM x = do
+  logger <- askTxEnv
+  unsafeRunIOInTxM $ runLoggingT x logger
