packages feed

mischief-ecs-0.2.0.0: src/Mischief/ECS/Log.hs

module Mischief.ECS.Log where

import Colog qualified
import Control.Monad.IO.Class
import Data.Text (Text)
import GHC.Stack
import Mischief.ECS.World

debug :: (HasCallStack) => (MonadSystem w m) => Text -> m ()
debug !msg = withFrozenCallStack $ do
  !world <- unsafeGetWorld
  liftIO $ Colog.usingLoggerT world.logger $ Colog.logDebug msg

info :: (HasCallStack) => (MonadSystem w m) => Text -> m ()
info !msg = withFrozenCallStack $ do
  !world <- unsafeGetWorld
  liftIO $ Colog.usingLoggerT world.logger $ Colog.logInfo msg

warn :: (HasCallStack) => (MonadSystem w m) => Text -> m ()
warn !msg = withFrozenCallStack $ do
  !world <- unsafeGetWorld
  liftIO $ Colog.usingLoggerT world.logger $ Colog.logWarning msg

err :: (HasCallStack) => (MonadSystem w m) => Text -> m ()
err !msg = withFrozenCallStack $ do
  !world <- unsafeGetWorld
  liftIO $ Colog.usingLoggerT world.loggerErr $ Colog.logError msg