diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+# log-postgres-0.9.0.1 (2023-03-14)
+* Add support for GHC 9.6.
+
+# log-postgres-0.9.0.0 (2022-09-21)
+* Remove deprecated `pgLogger`.
+* Generalize logger related functions to `MonadUnliftIO`.
+
 # log-postgres-0.8.1.0 (2022-04-04)
 * Add support for aeson 2.0.1.0.
 * Add support for GHC 9.2.
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,3 +1,40 @@
-# log-postgres [![Hackage version](https://img.shields.io/hackage/v/log-postgres.svg?label=Hackage)](https://hackage.haskell.org/package/log-postgres) [![Build Status](https://secure.travis-ci.org/scrive/log.svg?branch=master)](http://travis-ci.org/scrive/log)
+# log
 
-PostgreSQL back end for the `log` library suite.
+[![Hackage version](https://img.shields.io/hackage/v/log-base.svg?label=Hackage)](https://hackage.haskell.org/package/log-base)
+[![Build Status](https://github.com/scrive/log/workflows/Haskell-CI/badge.svg?branch=master)](https://github.com/scrive/log/actions?query=branch%3Amaster)
+
+A set of libraries that provide a way to record structured log messages with
+multiple backends.
+
+Supported backends:
+
+* Standard output via
+  [`log-base`](https://hackage.haskell.org/package/log-base).
+* Elasticsearch via
+  [`log-elasticsearch`](https://hackage.haskell.org/package/log-elasticsearch).
+* PostgreSQL via
+  [`log-postgres`](https://hackage.haskell.org/package/log-postgres).
+
+## Example
+
+A sample usage for logging to both standard output and Elasticsearch:
+
+```haskell
+{-# LANGUAGE OverloadedStrings #-}
+module Main where
+
+import Log
+import Log.Backend.ElasticSearch
+import Log.Backend.StandardOutput
+
+main :: IO ()
+main = do
+  let config = defaultElasticSearchConfig
+        { esServer = "http://localhost:9200"
+        , esIndex  = "logs"
+        }
+  withStdOutLogger $ \stdoutLogger -> do
+    withElasticSearchLogger config $ \esLogger -> do
+      runLogT "main" (stdoutLogger <> esLogger) defaultLogLevel $ do
+        logInfo_ "Hi there"
+```
diff --git a/log-postgres.cabal b/log-postgres.cabal
--- a/log-postgres.cabal
+++ b/log-postgres.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.0
 name:                log-postgres
-version:             0.8.1.0
+version:             0.9.0.1
 synopsis:            Structured logging solution (PostgreSQL back end)
 
 description:         PostgreSQL back end for the 'log' library suite.
@@ -18,7 +18,7 @@
 category:            System
 build-type:          Simple
 extra-source-files:  CHANGELOG.md, README.md
-tested-with:         GHC ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.2
+tested-with:         GHC ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.7 || ==9.4.4 || ==9.6.1
 
 Source-repository head
   Type:     git
@@ -35,13 +35,14 @@
                     , hpqtypes              >= 1.9.1.2
                     , http-client           >= 0.5
                     , lifted-base           >= 0.2
-                    , log-base              >= 0.10  && < 0.12
+                    , log-base              >= 0.10  && < 0.13
                     , mtl                   >= 2.2
                     , semigroups            >= 0.16
                     , split                 >= 0.2
                     , text                  >= 1.2
                     , text-show             >= 3.7
                     , time                  >= 1.6
+                    , unliftio-core         >= 0.2
                     , unordered-containers  >= 0.2
                     , vector                >= 0.12
 
@@ -56,7 +57,6 @@
                     , GeneralizedNewtypeDeriving
                     , LambdaCase
                     , MultiParamTypeClasses
-                    , NoImplicitPrelude
                     , OverloadedStrings
                     , RankNTypes
                     , RecordWildCards
diff --git a/src/Log/Backend/PostgreSQL.hs b/src/Log/Backend/PostgreSQL.hs
--- a/src/Log/Backend/PostgreSQL.hs
+++ b/src/Log/Backend/PostgreSQL.hs
@@ -1,17 +1,17 @@
 -- | PostgreSQL logging back-end.
-module Log.Backend.PostgreSQL (pgLogger, withPgLogger) where
+module Log.Backend.PostgreSQL (withPgLogger) where
 
-import Control.Applicative
 import Control.Concurrent
 import Control.Exception.Lifted
+import Control.Monad
 import Control.Monad.State.Lazy
+import Control.Monad.IO.Unlift
 import Data.Aeson ((.=), Value(..), object, encode)
 import Data.List.Split
 import Data.Monoid.Utils
 import Data.String
 import Data.Typeable
 import Database.PostgreSQL.PQTypes
-import Prelude
 import qualified Data.ByteString.Base64 as B64
 import qualified Data.Foldable as Foldable
 import qualified Data.Text as T
@@ -29,12 +29,10 @@
 -- | Create a 'pgLogger' for the duration of the given action, and
 -- shut it down afterwards, making sure that all buffered messages are
 -- actually written to the DB.
-withPgLogger :: ConnectionSourceM IO -> (Logger -> IO r) -> IO r
-withPgLogger cs act = do
+withPgLogger :: MonadUnliftIO m => ConnectionSourceM IO -> (Logger -> m r) -> m r
+withPgLogger cs act = withRunInIO $ \unlift -> do
   logger <- pgLogger cs
-  withLogger logger act
-
-{-# DEPRECATED pgLogger "Use 'withPgLogger' instead!" #-}
+  withLogger logger (unlift . act)
 
 -- | Start an asynchronous logger thread that inserts log messages
 -- into a PostgreSQL database.
