raven-haskell 0.1.0.1 → 0.1.1.0
raw patch · 2 files changed
+15/−6 lines, 2 filesdep +mtldep +resourcetdep ~http-conduitPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: mtl, resourcet
Dependency ranges changed: http-conduit
API changes (from Hackage documentation)
- System.Log.Raven.Interfaces: instance Eq HttpArgs
- System.Log.Raven.Interfaces: instance Show HttpArgs
- System.Log.Raven.Types: instance Eq SentryLevel
- System.Log.Raven.Types: instance Eq SentryRecord
- System.Log.Raven.Types: instance Eq SentrySettings
- System.Log.Raven.Types: instance Read SentryLevel
- System.Log.Raven.Types: instance Read SentrySettings
- System.Log.Raven.Types: instance Show SentryLevel
- System.Log.Raven.Types: instance Show SentryRecord
- System.Log.Raven.Types: instance Show SentrySettings
- System.Log.Raven.Types: instance ToJSON SentryLevel
- System.Log.Raven.Types: instance ToJSON SentryRecord
- System.Log.Raven.Types: sentryPrivateKey :: SentrySettings -> !String
- System.Log.Raven.Types: sentryProjectId :: SentrySettings -> !String
- System.Log.Raven.Types: sentryPublicKey :: SentrySettings -> !String
- System.Log.Raven.Types: sentryURI :: SentrySettings -> !String
- System.Log.Raven.Types: serviceDefaults :: SentryService -> (SentryRecord -> SentryRecord)
- System.Log.Raven.Types: serviceFallback :: SentryService -> (SentryRecord -> IO ())
- System.Log.Raven.Types: serviceSettings :: SentryService -> SentrySettings
- System.Log.Raven.Types: serviceTransport :: SentryService -> (SentrySettings -> SentryRecord -> IO ())
- System.Log.Raven.Types: srCulprit :: SentryRecord -> Maybe String
- System.Log.Raven.Types: srEventId :: SentryRecord -> !String
- System.Log.Raven.Types: srExtra :: SentryRecord -> !Assoc
- System.Log.Raven.Types: srInterfaces :: SentryRecord -> HashMap String Value
- System.Log.Raven.Types: srLevel :: SentryRecord -> !SentryLevel
- System.Log.Raven.Types: srLogger :: SentryRecord -> !String
- System.Log.Raven.Types: srMessage :: SentryRecord -> !String
- System.Log.Raven.Types: srModules :: SentryRecord -> !Assoc
- System.Log.Raven.Types: srPlatform :: SentryRecord -> Maybe String
- System.Log.Raven.Types: srServerName :: SentryRecord -> Maybe String
- System.Log.Raven.Types: srTags :: SentryRecord -> !Assoc
- System.Log.Raven.Types: srTimestamp :: SentryRecord -> !String
+ System.Log.Raven.Interfaces: instance GHC.Classes.Eq System.Log.Raven.Interfaces.HttpArgs
+ System.Log.Raven.Interfaces: instance GHC.Show.Show System.Log.Raven.Interfaces.HttpArgs
+ System.Log.Raven.Transport.HttpConduit: sendRecordWith :: MonadIO m => Manager -> SentrySettings -> SentryRecord -> m ()
+ System.Log.Raven.Types: [sentryPrivateKey] :: SentrySettings -> !String
+ System.Log.Raven.Types: [sentryProjectId] :: SentrySettings -> !String
+ System.Log.Raven.Types: [sentryPublicKey] :: SentrySettings -> !String
+ System.Log.Raven.Types: [sentryURI] :: SentrySettings -> !String
+ System.Log.Raven.Types: [serviceDefaults] :: SentryService -> (SentryRecord -> SentryRecord)
+ System.Log.Raven.Types: [serviceFallback] :: SentryService -> (SentryRecord -> IO ())
+ System.Log.Raven.Types: [serviceSettings] :: SentryService -> SentrySettings
+ System.Log.Raven.Types: [serviceTransport] :: SentryService -> (SentrySettings -> SentryRecord -> IO ())
+ System.Log.Raven.Types: [srCulprit] :: SentryRecord -> Maybe String
+ System.Log.Raven.Types: [srEventId] :: SentryRecord -> !String
+ System.Log.Raven.Types: [srExtra] :: SentryRecord -> !Assoc
+ System.Log.Raven.Types: [srInterfaces] :: SentryRecord -> HashMap String Value
+ System.Log.Raven.Types: [srLevel] :: SentryRecord -> !SentryLevel
+ System.Log.Raven.Types: [srLogger] :: SentryRecord -> !String
+ System.Log.Raven.Types: [srMessage] :: SentryRecord -> !String
+ System.Log.Raven.Types: [srModules] :: SentryRecord -> !Assoc
+ System.Log.Raven.Types: [srPlatform] :: SentryRecord -> Maybe String
+ System.Log.Raven.Types: [srServerName] :: SentryRecord -> Maybe String
+ System.Log.Raven.Types: [srTags] :: SentryRecord -> !Assoc
+ System.Log.Raven.Types: [srTimestamp] :: SentryRecord -> !String
+ System.Log.Raven.Types: instance Data.Aeson.Types.ToJSON.ToJSON System.Log.Raven.Types.SentryLevel
+ System.Log.Raven.Types: instance Data.Aeson.Types.ToJSON.ToJSON System.Log.Raven.Types.SentryRecord
+ System.Log.Raven.Types: instance GHC.Classes.Eq System.Log.Raven.Types.SentryLevel
+ System.Log.Raven.Types: instance GHC.Classes.Eq System.Log.Raven.Types.SentryRecord
+ System.Log.Raven.Types: instance GHC.Classes.Eq System.Log.Raven.Types.SentrySettings
+ System.Log.Raven.Types: instance GHC.Read.Read System.Log.Raven.Types.SentryLevel
+ System.Log.Raven.Types: instance GHC.Read.Read System.Log.Raven.Types.SentrySettings
+ System.Log.Raven.Types: instance GHC.Show.Show System.Log.Raven.Types.SentryLevel
+ System.Log.Raven.Types: instance GHC.Show.Show System.Log.Raven.Types.SentryRecord
+ System.Log.Raven.Types: instance GHC.Show.Show System.Log.Raven.Types.SentrySettings
- System.Log.Raven.Interfaces: (.=:) :: ToJSON v => String -> v -> [(String, Value)]
+ System.Log.Raven.Interfaces: (.=:) :: (ToJSON v) => String -> v -> [(String, Value)]
- System.Log.Raven.Interfaces: fromMaybe :: ToJSON v => String -> Maybe v -> [(String, Value)]
+ System.Log.Raven.Interfaces: fromMaybe :: (ToJSON v) => String -> Maybe v -> [(String, Value)]
- System.Log.Raven.Interfaces: interface :: ToJSON v => String -> v -> SentryRecord -> SentryRecord
+ System.Log.Raven.Interfaces: interface :: (ToJSON v) => String -> v -> SentryRecord -> SentryRecord
Files
raven-haskell.cabal view
@@ -1,5 +1,5 @@ name: raven-haskell-version: 0.1.0.1+version: 0.1.1.0 synopsis: Haskell client for Sentry logging service. -- description: homepage: https://bitbucket.org/dpwiz/raven-haskell@@ -26,9 +26,11 @@ base ==4.*, aeson, bytestring >= 0.10,- http-conduit,+ http-conduit >= 0.4.30,+ mtl, network, random >= 1.0,+ resourcet, text, time >= 1.5.0.1, unordered-containers,
src/System/Log/Raven/Transport/HttpConduit.hs view
@@ -3,9 +3,11 @@ {-# LANGUAGE OverloadedStrings #-} module System.Log.Raven.Transport.HttpConduit ( sendRecord+ , sendRecordWith ) where -import Network (withSocketsDo)+import Control.Monad.Trans (MonadIO, liftIO)+import Control.Monad.Trans.Resource (runResourceT) import Network.HTTP.Conduit import qualified Data.ByteString.Char8 as BS @@ -13,7 +15,12 @@ import System.Log.Raven.Types sendRecord :: SentrySettings -> SentryRecord -> IO ()-sendRecord conf rec = withSocketsDo $ do+sendRecord conf rec = do+ manager <- newManager tlsManagerSettings+ runResourceT $ sendRecordWith manager conf rec++sendRecordWith :: MonadIO m => Manager -> SentrySettings -> SentryRecord -> m ()+sendRecordWith manager conf rec = do let ep = endpointURL conf let auth = concat [ "Sentry sentry_version=2.0" , ", sentry_client=raven-haskell-0.1.0.0"@@ -23,10 +30,10 @@ case ep of Nothing -> return () Just url -> do- req' <- parseUrl url+ req' <- liftIO $ parseUrlThrow url let req = req' { method = "POST" , requestHeaders = [("X-Sentry-Auth", BS.pack auth)] , requestBody = RequestBodyLBS (recordLBS rec) }- res <- withManager $ httpLbs req+ _ <- httpLbs req manager return ()