angel-0.4.4: src/Angel/Log.hs
module Angel.Log ( cleanCalendar
, logger) where
import Data.Time.LocalTime (ZonedTime,
getZonedTime)
import Data.Time.Format (formatTime)
import Text.Printf (printf)
import System.Locale (defaultTimeLocale)
-- |provide a clean, ISO-ish format for timestamps in logs
cleanCalendar :: ZonedTime -> String
cleanCalendar = formatTime defaultTimeLocale "%Y/%m/%d %H:%M:%S"
-- |log a line to stdout; indented for use with partial application for
-- |"local log"-type macroing
logger :: String -> String -> IO ()
logger lname msg = do
zt <- getZonedTime
printf "[%s] {%s} %s\n" (cleanCalendar zt) lname msg