withPostgreSQL :: MonadResource m => ByteString -> (SQL.Connection -> ConduitT i o m r) -> ConduitT i o m r
withPostgreSQL cs f = bracketP (SQL.connectPostgreSQL cs) SQL.close f
I would like to catch any exception that connectPostgreSQL throws and log it using monad-logger, something like:
Now it seems that I can't do that since catch from base is fixed to IO. Using catch from unliftIO requires ConduitT to have an instance of MonadUnliftIO. After trying stuff for a while I just gave up.
My question would be "how do I log that bracketP failed using monad-logger"?
I have the following function:
I would like to catch any exception that
connectPostgreSQL
throws and log it usingmonad-logger
, something like:Now it seems that I can't do that since
catch
from base is fixed toIO
. Usingcatch
fromunliftIO
requiresConduitT
to have an instance ofMonadUnliftIO
. After trying stuff for a while I just gave up.My question would be "how do I log that
bracketP
failed usingmonad-logger
"?