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