summaryrefslogtreecommitdiff
path: root/hsm-core/Hsm/Core/LogIO.hs
diff options
context:
space:
mode:
authorPaul Oliver <contact@pauloliver.dev>2024-08-24 11:57:18 -0700
committerPaul Oliver <contact@pauloliver.dev>2024-10-14 13:56:27 -0700
commit70d3e37b1a088209fe84abf07a39d14dec116c6b (patch)
treecd7779f004080c02b1fc6b1327c43ec2dd4e02d5 /hsm-core/Hsm/Core/LogIO.hs
Initial commitHEADmaster
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