summaryrefslogtreecommitdiff
path: root/hsm-core/Hsm/Core/LogIO.hs
diff options
context:
space:
mode:
Diffstat (limited to 'hsm-core/Hsm/Core/LogIO.hs')
-rw-r--r--hsm-core/Hsm/Core/LogIO.hs25
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