module System.Log.Simple.Text ( defaultTimeFormat, textFmt, text, shortText, msgOnly ) where import Data.Text (Text) import Data.Time import Text.Format import System.Log.Simple.Base -- | Default time format defaultTimeFormat ∷ String defaultTimeFormat = "%_Y-%m-%d %T %z" textFmt ∷ String → String → Converter Text textFmt tmFmt msgFmt (Message tm l comp scope msg) = format msgFmt ~~ args where args = [ "time" ~% formatTime defaultTimeLocale tmFmt tm, "level" ~% toStr l, "component" ~% comp, "scope" ~% scope, "message" ~% msg] toStr Trace = "TRACE" toStr Debug = "DEBUG" toStr Info = "INFO" toStr Warning = "WARN" toStr Error = "ERROR" toStr Fatal = "FATAL" -- | Text log converter with default time format text ∷ Converter Text text = textFmt defaultTimeFormat "{time}\t{level}\t{component}:{scope}> {message}" shortText ∷ Converter Text shortText = textFmt defaultTimeFormat "{level}\t{component}: {message}" msgOnly ∷ Converter Text msgOnly = textFmt defaultTimeFormat "{message}"