Revision 0c28bee1 htools/Ganeti/Logging.hs

b/htools/Ganeti/Logging.hs
89 89
  return [setFormatter handler fmt]
90 90

  
91 91
-- | Sets up the logging configuration.
92
setupLogging :: String    -- ^ Log file
92
setupLogging :: Maybe String    -- ^ Log file
93 93
             -> String    -- ^ Program name
94 94
             -> Bool      -- ^ Debug level
95 95
             -> Bool      -- ^ Log to stderr
......
98 98
             -> IO ()
99 99
setupLogging logf program debug stderr_logging console syslog = do
100 100
  let level = if debug then DEBUG else INFO
101
      destf = if console then C.devConsole else logf
101
      destf = if console then Just C.devConsole else logf
102 102
      fmt = logFormatter program False False
103
      file_logging = syslog /= SyslogOnly
103 104

  
104 105
  updateGlobalLogger rootLoggerName (setLevel level)
105 106

  
106 107
  stderr_handlers <- openFormattedHandler stderr_logging fmt $
107 108
                     streamHandler stderr level
108 109

  
109
  file_handlers <- openFormattedHandler (syslog /= SyslogOnly) fmt $
110
                   fileHandler destf level
110
  file_handlers <- case destf of
111
                     Nothing -> return []
112
                     Just path -> openFormattedHandler file_logging fmt $
113
                                  fileHandler path level
111 114

  
112 115
  let handlers = concat [file_handlers, stderr_handlers]
113 116
  updateGlobalLogger rootLoggerName $ setHandlers handlers

Also available in: Unified diff