module Web.SocketIO.Types.Log (Log(..)) where

import System.Console.ANSI

--------------------------------------------------------------------------------
-- | Logger
data Log = Error String
         | Warn String
         | Info String
         | Debug String
         deriving (Eq)

instance Show Log where
    show (Error message) = "    " ++ paint Red 	"[error] " ++ error message
    show (Warn  message) = "    " ++ paint Yellow "[warn]  " ++ message
    show (Info  message) = "    " ++ paint Cyan   "[info]  " ++ message
    show (Debug message) = "    " ++ paint Black  "[debug] " ++ message

--------------------------------------------------------------------------------
paint :: Color -> String -> String
paint color s = setSGRCode [SetColor Foreground Vivid color] ++ s ++ setSGRCode []