X-Git-Url: http://gitweb.michael.orlitzky.com/?p=dead%2Fhtsn.git;a=blobdiff_plain;f=src%2FLogging.hs;h=fb1bfc658c91a536ff72b81627319681211a9588;hp=94f4f7aa63bc383c23277c13bb8d93dd5b713cb3;hb=a8abe8f8e85662f544235f1d0a43524e5077078a;hpb=8c69c28e5ab5ef5a5ed64411e1213e504a6a309e diff --git a/src/Logging.hs b/src/Logging.hs index 94f4f7a..fb1bfc6 100644 --- a/src/Logging.hs +++ b/src/Logging.hs @@ -6,10 +6,11 @@ module Logging ( log_warning ) where +import System.Log.Formatter ( simpleLogFormatter ) +import System.Log.Handler ( setFormatter ) import System.Log.Handler.Simple ( fileHandler ) import System.Log.Handler.Syslog ( Facility ( USER ), - Option ( PID ), openlog ) import System.Log.Logger ( Priority ( DEBUG, INFO ), @@ -22,6 +23,7 @@ import System.Log.Logger ( updateGlobalLogger, warningM ) + log_debug :: String -> IO () log_debug = debugM rootLoggerName @@ -34,13 +36,21 @@ log_info = infoM rootLoggerName log_warning :: String -> IO () log_warning = warningM rootLoggerName + +-- | Why don't we take a Configuration as an argument? Because it +-- would create circular imports! init_logging :: FilePath -> Priority -> Bool -> IO () init_logging log_file log_level syslog | syslog == True = do - handler <- openlog rootLoggerName [PID] USER level + handler' <- openlog rootLoggerName [] USER level + -- Syslog should output the date by itself. + let slf = simpleLogFormatter "htsn[$pid] $prio: $msg" + let handler = setFormatter handler' slf updateGlobalLogger rootLoggerName (setLevel level . setHandlers [handler]) | otherwise = do - handler <- fileHandler log_file level + handler' <- fileHandler log_file level + let slf = simpleLogFormatter "$time: htsn[$pid] $prio: $msg" + let handler = setFormatter handler' slf updateGlobalLogger rootLoggerName (setLevel level . setHandlers [handler]) where min_level = if syslog then INFO else DEBUG