X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FNetwork%2FServices%2FTSN%2FLogging.hs;h=4a588e84c3ee6a7b24d3ba1b264a750048b1e323;hb=HEAD;hp=a20a8977ff05d6ddd5719c461b322f8c1dac8b44;hpb=47a56f78983c6c328936e240c30d2f47d26425fe;p=dead%2Fhtsn-common.git diff --git a/src/Network/Services/TSN/Logging.hs b/src/Network/Services/TSN/Logging.hs index a20a897..4a588e8 100644 --- a/src/Network/Services/TSN/Logging.hs +++ b/src/Network/Services/TSN/Logging.hs @@ -1,3 +1,5 @@ +-- | Provide convenience functions for logging to the HSLogger \"root\" +-- logger. module Network.Services.TSN.Logging ( init_logging, log_debug, @@ -27,33 +29,39 @@ import System.Log.Logger ( warningM ) --- | Log a message at the DEBUG level. +-- | Log a message at the 'DEBUG' level. log_debug :: String -> IO () log_debug = debugM rootLoggerName --- | Log a message at the ERROR level. +-- | Log a message at the 'ERROR' level. log_error :: String -> IO () log_error = errorM rootLoggerName --- | Log a message at the INFO level. +-- | Log a message at the 'INFO' level. log_info :: String -> IO () log_info = infoM rootLoggerName --- | Log a message at the WARNING level. +-- | Log a message at the 'WARNING' level. log_warning :: String -> IO () log_warning = warningM rootLoggerName --- | Set up the logging. All logs are handled by the global "root" --- logger provided by HSLogger. We remove all of its handlers so --- that it does nothing; then we conditionally add back two handlers --- -- one for syslog, and one for a normal file -- dependent upon --- the 'syslog' and 'log_file' configuration items. +-- | Set up the logging. All logs are handled by the global \"root\" +-- logger provided by HSLogger. We remove all of its handlers so that +-- it does nothing; then we conditionally add back two handlers -- one +-- for syslog, and one for a normal file -- dependent upon the +-- @syslog@ and @log_file@ arguments. -- --- Why don't we take a Configuration as an argument? Because it --- would create circular imports! -init_logging :: Maybe FilePath -> Priority -> Bool -> IO () -init_logging log_file log_level syslog = do +-- If @syslog@ is 'False' and @log_file@ is 'Nothing'; then nothing +-- will be logged and the @log_level@ will essentially be ignored +-- (even though the root logger will have its level set). +-- +init_logging :: Priority -- ^ The priority at and above which + -- to log messages. + -> Maybe FilePath -- ^ Path to the log file (optional) + -> Bool -- ^ Log to syslog? + -> IO () +init_logging log_level log_file syslog = do -- First set the global log level and clear the default handler. let no_handlers = [] :: [GenericHandler a] updateGlobalLogger rootLoggerName (setLevel log_level .