packages feed

katip-rollbar 0.2.0.0 → 0.3.0.0

raw patch · 2 files changed

+11/−27 lines, 2 files

Files

katip-rollbar.cabal view
@@ -2,10 +2,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: db432a9dd33cf06f56b98b41c89dc117a89b969e581b082f0619dd16b716a941+-- hash: a493aa087b8743c3c495d0201c9a4a7ea6b7ee372660f60b38801435694ec71d  name:           katip-rollbar-version:        0.2.0.0+version:        0.3.0.0 synopsis:       Katip scribe that logs to Rollbar category:       Logging homepage:       https://github.com/joneshf/katip-rollbar#readme
src/Katip/Scribes/Rollbar.hs view
@@ -6,11 +6,12 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeOperators       #-} -module Katip.Scribes.Rollbar where+module Katip.Scribes.Rollbar+  ( mkRollbarScribe+  ) where  import Prelude hiding (error) -import "base" Control.Concurrent.MVar (MVar, newEmptyMVar, putMVar, takeMVar) import "base" Control.Monad           (replicateM, when) import "base" Data.Foldable           (for_) import "base" Data.Functor            (void)@@ -70,10 +71,10 @@ import qualified "katip" Katip  queueSize :: Int-queueSize = 10+queueSize = 4096  workerSize :: Int-workerSize = 3+workerSize = 10  mkRollbarScribe ::   RemoveHeaders headers =>@@ -81,20 +82,19 @@   AccessToken ->   Maybe Branch ->   Maybe CodeVersion ->-  Manager ->+  Manager -> -- ^ Must support TLS   Severity ->   Verbosity ->   IO Scribe mkRollbarScribe proxy accessToken branch codeVersion manager severity verbosity = do   queue <- newTBMQueueIO queueSize-  finalize <- newEmptyMVar-  setupWorkers proxy queue finalize manager+  workers <- replicateM workerSize (async $ mkWorker proxy manager queue)   let liPush item = when (permitItem severity item) $         atomically (writeTBMQueue queue $ rollbarItem' item)       rollbarItem' item = rollbarItem proxy accessToken branch codeVersion verbosity item       scribeFinalizer = do-        putMVar finalize ()-        takeMVar finalize+        atomically (closeTBMQueue queue)+        for_ workers waitCatch   pure Scribe { liPush, scribeFinalizer }  rollbarItem ::@@ -138,22 +138,6 @@   timestamp = _itemTime item   value :: Value   value = itemJson verbosity item---- | Setup the workers and wait until the finalizer is evaluated.---   Then, close the queueu, wait for the workers and continue finalization.-setupWorkers ::-  RemoveHeaders headers =>-  proxy headers ->-  TBMQueue (Item Value ("Authorization" ': headers)) ->-  MVar () ->-  Manager ->-  IO ()-setupWorkers proxy queue finalize manager = void $ async $ do-  workers <- replicateM workerSize (async $ mkWorker proxy manager queue)-  takeMVar finalize-  atomically (closeTBMQueue queue)-  for_ workers waitCatch-  putMVar finalize ()  mkWorker ::   (RemoveHeaders headers) =>