diff --git a/src/Network/Wreq/Wrecker.hs b/src/Network/Wreq/Wrecker.hs
--- a/src/Network/Wreq/Wrecker.hs
+++ b/src/Network/Wreq/Wrecker.hs
@@ -11,6 +11,7 @@
 module Network.Wreq.Wrecker
     ( Session
     , defaultManagerSettings
+    , withRecordFunction
     -- * Session Creation
     , withWreq
     , withWreqNoCookies
@@ -93,6 +94,13 @@
 withWreqNoCookies :: (Session -> IO a) -> Environment -> IO a
 withWreqNoCookies f env =
     withWreqSettings (recorder env) Nothing (defaultManagerSettings (context env)) f
+
+-- | Replaces the record function of the Session with the provided one.
+--
+-- This is useful for custom recorder actions, or if you need to catch any exceptions
+-- thrown by the IO action and don't wish them to bubble up to the statistics.
+withRecordFunction :: (forall a. Recorder -> String -> IO a -> IO a) -> Session -> Session
+withRecordFunction r sess = sess {sRecord = r}
 
 -- | Create a session, using the given cookie jar and manager settings.
 withWreqSettings ::
diff --git a/wrecker.cabal b/wrecker.cabal
--- a/wrecker.cabal
+++ b/wrecker.cabal
@@ -1,5 +1,5 @@
 name:                wrecker
-version:             1.2.0.0
+version:             1.2.1.0
 synopsis:            An HTTP Performance Benchmarker
 description:
  'wrecker' is a library and executable for creating HTTP benchmarks. It is designed for
