aboutsummaryrefslogtreecommitdiff
path: root/hsm-core/Hsm
diff options
context:
space:
mode:
authorPaul Oliver <contact@pauloliver.dev>2025-01-14 15:42:46 -0800
committerPaul Oliver <contact@pauloliver.dev>2025-01-24 16:36:18 -0800
commitc18d30706ce647a7b640d73514eecb0aa442873c (patch)
tree35c93aff04e7d9e2153d696f00f2ac478043613f /hsm-core/Hsm
parent7c360b79ee2e3230e6e5fe76c102dd688f9cf7b9 (diff)
Adds GPIO effect and dummy blinker service
Diffstat (limited to 'hsm-core/Hsm')
-rw-r--r--hsm-core/Hsm/Core/Log.hs15
1 files changed, 10 insertions, 5 deletions
diff --git a/hsm-core/Hsm/Core/Log.hs b/hsm-core/Hsm/Core/Log.hs
index 9bf8b37..6930e90 100644
--- a/hsm-core/Hsm/Core/Log.hs
+++ b/hsm-core/Hsm/Core/Log.hs
@@ -1,22 +1,27 @@
module Hsm.Core.Log
( withLogIO
, logTup
+ , flushLogger
) where
import Data.Aeson.Types (emptyObject)
import Data.Text (Text)
import Data.Time.Clock (getCurrentTime)
import Effectful (Eff, (:>))
-import Effectful.Log (Log, LogLevel, getLoggerIO, logMessage)
+import Effectful.Dispatch.Static (unsafeEff_)
+import Effectful.Log qualified as L
-- Helper function allows logging within IO, Useful during `resourcet`
-- allocation and release operations.
-withLogIO :: Log :> es => Eff es (LogLevel -> Text -> IO ())
+withLogIO :: L.Log :> es => Eff es (L.LogLevel -> Text -> IO ())
withLogIO = do
- logIO <- getLoggerIO
+ logIO <- L.getLoggerIO
return $ \level message -> do
now <- getCurrentTime
logIO now level message emptyObject
-logTup :: Log :> es => (LogLevel, Text) -> Eff es ()
-logTup (level, message) = logMessage level message emptyObject
+logTup :: L.Log :> es => (L.LogLevel, Text) -> Eff es ()
+logTup (level, message) = L.logMessage level message emptyObject
+
+flushLogger :: L.Log :> es => Eff es ()
+flushLogger = L.getLoggerEnv >>= unsafeEff_ . L.waitForLogger . L.leLogger