+-- | Provide convenience functions for logging to the HSLogger "root"
+-- logger.
module Network.Services.TSN.Logging (
init_logging,
log_debug,
-- 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.
+-- 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 :: Maybe FilePath -- ^ Path to the log file (optional)
+ -> Bool -- ^ Log to syslog?
+ -> Priority -- ^ The priority at and above which
+ -- to log messages.
+ -> IO ()
+init_logging log_file syslog log_level = do
-- First set the global log level and clear the default handler.
let no_handlers = [] :: [GenericHandler a]
updateGlobalLogger rootLoggerName (setLevel log_level .