packages feed

log-postgres 0.8.1.0 → 0.9.0.1

raw patch · 4 files changed

Files

CHANGELOG.md view
@@ -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.
README.md view
@@ -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"+```
log-postgres.cabal view
@@ -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
src/Log/Backend/PostgreSQL.hs view
@@ -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.