{-# LANGUAGE ImportQualifiedPost #-} -- Module : Hsm.Core.LogIO -- Maintainer : contact@pauloliver.dev module Hsm.Core.LogIO ( LoggerIO , getLoggerIO ) where import Data.Aeson.Types (emptyObject) import Data.Text (Text) import Data.Time.Clock (getCurrentTime) import Effectful.Log (LogLevel, MonadLog) import Effectful.Log qualified as L (getLoggerIO) -- Wraps logger returned by @getLoggerIO@ into simpler type. type LoggerIO = LogLevel -> Text -> IO () getLoggerIO :: MonadLog m => m LoggerIO getLoggerIO = L.getLoggerIO >>= \logIO -> return $ \level msg -> getCurrentTime >>= \now -> logIO now level msg emptyObject