haskell-bitmex-client-0.1.0.0: lib/BitMEXClient/Wrapper/Logging.hs
module BitMEXClient.Wrapper.Logging
( withLoggingBitMEXWrapper
, withLoggingBitMEXConfig
, runConfigLog
, runConfigLogWithExceptions
) where
import BitMEX.Core
( BitMEXConfig (..)
)
import BitMEX.Logging
import BitMEXClient.CustomPrelude
import BitMEXClient.Wrapper.Types
import Data.Text (Text)
-- | Add a logging environment and an executor to a BitMEXWrapperConfig.
withLoggingBitMEXWrapper :: LogContext -> BitMEXWrapperConfig -> BitMEXWrapperConfig
withLoggingBitMEXWrapper context config =
config
{ logExecContext = runDefaultLogExecWithContext
, logContext = context
}
-- | Add a logging environment and an executor to a BitMEXConfig.
withLoggingBitMEXConfig :: LogContext -> BitMEXConfig -> BitMEXConfig
withLoggingBitMEXConfig context config =
config
{ configLogExecWithContext = runDefaultLogExecWithContext
, configLogContext = context
}
-- | Run the BitMEXWrapperConfig's executor on the config's
-- log environment.
runConfigLog ::
MonadIO m => BitMEXWrapperConfig -> LogExec m
runConfigLog config =
logExecContext config (logContext config)
-- | Run the BitMEXWrapperConfig's executor on the config's
-- log environment with exceptions.
runConfigLogWithExceptions ::
(MonadCatch m, MonadIO m)
=> Text
-> BitMEXWrapperConfig
-> LogExec m
runConfigLogWithExceptions src config =
runConfigLog config . logExceptions src