module System.Log.Simple.Text (
defaultTimeFormat,
textFmt, text
) where
import Data.Text (Text)
import qualified Data.Text as T
import Data.Time
import System.Log.Simple.Base
defaultTimeFormat :: String
defaultTimeFormat = "%d/%m/%y %T %z"
textFmt :: String -> Converter Text
textFmt fmt (Message tm l p msg) = T.intercalate (T.pack "\t") [T.pack s, T.pack (toStr l), msg'] where
s = formatTime defaultTimeLocale fmt tm
msg' = T.concat [T.intercalate (T.pack "/") p, T.pack "> ", msg]
toStr Trace = "TRACE"
toStr Debug = "DEBUG"
toStr Info = "INFO"
toStr Warning = "WARN"
toStr Error = "ERROR"
toStr Fatal = "FATAL"
text :: Converter Text
text = textFmt defaultTimeFormat