packages feed

photoname-5.5: src/lib/Photoname/Log.hs

module Photoname.Log
  ( logger
  )
  where

import Colog.Simple (LogAction, Message, Severity(Debug), (%), (%+), msg, msgc,
  sevc, stack, logTextStdout)
import Colog.Simple qualified
import Control.Monad.Trans (MonadIO)

import Photoname.Common (Verbosity (..))


-- Wrapper to set up logging based on desired verbosity
logger :: MonadIO m => Verbosity -> LogAction m Message
logger  Quiet          = mempty
logger (Verbose Debug) = Colog.Simple.logger (sevc % stack %+ msg) logTextStdout Debug
logger (Verbose sev)   = Colog.Simple.logger msgc logTextStdout sev