X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FNetwork%2FServices%2FTSN%2FLogging.hs;fp=src%2FNetwork%2FServices%2FTSN%2FLogging.hs;h=0000000000000000000000000000000000000000;hb=39a22e11952c31a1f058c1e457be471381eff6fa;hp=a20a8977ff05d6ddd5719c461b322f8c1dac8b44;hpb=a4eb5f096c486cb94b1e8a25de7bc16879cab6e5;p=dead%2Fhtsn.git diff --git a/src/Network/Services/TSN/Logging.hs b/src/Network/Services/TSN/Logging.hs deleted file mode 100644 index a20a897..0000000 --- a/src/Network/Services/TSN/Logging.hs +++ /dev/null @@ -1,84 +0,0 @@ -module Network.Services.TSN.Logging ( - init_logging, - log_debug, - log_error, - log_info, - log_warning ) -where - -import Control.Monad ( when ) -import System.Environment ( getProgName ) -import System.Log.Formatter ( simpleLogFormatter ) -import System.Log.Handler ( setFormatter ) -import System.Log.Handler.Simple ( GenericHandler, fileHandler ) -import System.Log.Handler.Syslog ( - Facility ( USER ), - openlog ) -import System.Log.Logger ( - Priority ( INFO ), - addHandler, - debugM, - errorM, - infoM, - rootLoggerName, - setHandlers, - setLevel, - updateGlobalLogger, - warningM ) - - --- | Log a message at the DEBUG level. -log_debug :: String -> IO () -log_debug = debugM rootLoggerName - --- | Log a message at the ERROR level. -log_error :: String -> IO () -log_error = errorM rootLoggerName - --- | Log a message at the INFO level. -log_info :: String -> IO () -log_info = infoM rootLoggerName - --- | 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. --- --- 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 - -- First set the global log level and clear the default handler. - let no_handlers = [] :: [GenericHandler a] - updateGlobalLogger rootLoggerName (setLevel log_level . - setHandlers no_handlers) - - when syslog $ do - let min_level = INFO - let sl_level = if log_level < min_level then min_level else log_level - - -- The syslog handle gets its own level which will cowardly refuse - -- to log all debug info (i.e. the entire feed) to syslog. - sl_handler' <- openlog rootLoggerName [] USER sl_level - - -- Syslog should output the date by itself. - program_name <- getProgName - let sl_formatter = simpleLogFormatter $ - program_name ++ "[$pid] $prio: $msg" - let sl_handler = setFormatter sl_handler' sl_formatter - - updateGlobalLogger rootLoggerName (addHandler sl_handler) - - case log_file of - Nothing -> return () - Just lf -> do - lf_handler' <- fileHandler lf log_level - let lf_formatter = simpleLogFormatter "$time: htsn[$pid] $prio: $msg" - let lf_handler = setFormatter lf_handler' lf_formatter - updateGlobalLogger rootLoggerName (addHandler lf_handler)