packages feed

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