module System.Log.HTML ( defaultTimeLocale, htmlFmt, html ) where import Data.Text (Text) import qualified Data.Text as T import Data.Time import System.Locale import System.Log.Base import System.Log.Text htmlFmt :: String -> String -> Converter Text htmlFmt fmt title = Converter header c where c (Message tm l p msg) = T.unlines [ T.pack $ "
", T.pack $ "" ++ formatTm tm ++ "", T.pack $ "" ++ classMsg l ++ ".", T.concat [T.pack "", T.intercalate (T.pack "/") p, T.pack ">"], msg, T.pack "
"] typeClass Trace = "trace" typeClass Debug = "except debug" typeClass Info = "div1 except info" typeClass Warning = "div0 except warning" typeClass Error = "div0 except error" typeClass Fatal = "div0 critical" classMsg Trace = "Trace info" classMsg Debug = "Debug info" classMsg Info = "Information" classMsg Warning = "Warning" classMsg Error = "Error" classMsg Fatal = "Critical error" formatTm tm = formatTime defaultTimeLocale fmt tm header = T.unlines $ map T.pack [ "", "", "", "", "" ++ title ++ "", "", "", "", "", "", "

" ++ title ++ "

"] html :: String -> Converter Text html = htmlFmt defaultTimeFormat