hw-uri-0.0.0.1: src/HaskellWorks/Data/Uri/AWS/Env.hs
{-# LANGUAGE OverloadedStrings #-}
module HaskellWorks.Data.Uri.AWS.Env
( awsLogger
) where
import Antiope.Env (LogLevel (..))
import Control.Concurrent (myThreadId)
import Control.Monad
import Data.Semigroup ((<>))
import HaskellWorks.Data.Uri.Show
import qualified Data.ByteString.Lazy as LBS
import qualified Data.ByteString.Lazy.Char8 as LC8
import qualified Data.Text.Encoding as T
import qualified HaskellWorks.Data.Uri.IO.Console as CIO
import qualified System.IO as IO
awsLogger :: Maybe LogLevel -> LogLevel -> LC8.ByteString -> IO ()
awsLogger maybeConfigLogLevel msgLogLevel message =
forM_ maybeConfigLogLevel $ \configLogLevel ->
when (msgLogLevel <= configLogLevel) $ do
threadId <- myThreadId
CIO.hPutStrLn IO.stderr $ "[" <> tshow msgLogLevel <> "] [tid: " <> tshow threadId <> "]" <> text
where text = T.decodeUtf8 $ LBS.toStrict message