diff options
Diffstat (limited to 'hsm-core/Hsm/Core/LogIO.hs')
-rw-r--r-- | hsm-core/Hsm/Core/LogIO.hs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/hsm-core/Hsm/Core/LogIO.hs b/hsm-core/Hsm/Core/LogIO.hs new file mode 100644 index 0000000..fb187e9 --- /dev/null +++ b/hsm-core/Hsm/Core/LogIO.hs @@ -0,0 +1,25 @@ +{-# 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 |