Changeset 5975
- Timestamp:
- 09/05/2010 10:23:48 AM (1 year ago)
- Files:
-
- trunk/dabo/__init__.py (modified) (3 diffs)
- trunk/dabo/logging.conf.sample (modified) (3 diffs)
- trunk/dabo/settings.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/dabo/__init__.py
r5962 r5975 128 128 from settings import * 129 129 130 # These are the various standard log handlers. 131 consoleLogHandler = fileLogHandler = None 132 dbConsoleLogHandler = dbFileLogHandler = None 130 133 # See if a logging.conf file exists in either the current directory or 131 134 # the base directory for the dabo module. If such a file is found, use … … 139 142 _logConfFile = os.path.join(_daboloc, _logConfFileName) 140 143 if os.path.exists(_logConfFile): 144 # If a 'logging.conf' file exists, use it instead of dabo.settings. 141 145 import logging.config 142 146 logging.config.fileConfig(_logConfFile) … … 144 148 log = logging.getLogger(mainLogQualName) 145 149 dbActivityLog = logging.getLogger(dbLogQualName) 146 consoleLog = fileLog = dbLog = None147 150 for _handler in log.handlers: 148 151 try: 149 152 _handler.baseFilename 150 fileLog = _handler153 fileLogHandler = _handler 151 154 except AttributeError: 152 consoleLog = _handler155 consoleLogHandler = _handler 153 156 for _handler in dbActivityLog.handlers: 154 157 try: 155 158 _handler.baseFilename 156 db Log= _handler159 dbFileLogHandler = _handler 157 160 break 158 161 except AttributeError: 159 pass162 dbConsoleLogHandler = _handler 160 163 else: 161 164 # Use dabo.settings values to configure the logs 162 consoleLog = logging.StreamHandler() 163 consoleLog.setLevel(mainLogConsoleLevel) 164 fileLog = logging.handlers.RotatingFileHandler(filename=mainLogFile, maxBytes=maxLogFileSize, 165 encoding=defaultEncoding) 166 fileLog.setLevel(mainLogFileLevel) 165 consoleLogHandler = logging.StreamHandler() 166 consoleLogHandler.setLevel(mainLogConsoleLevel) 167 167 consoleFormatter = logging.Formatter(consoleFormat) 168 168 consoleFormatter.datefmt = mainLogDateFormat 169 fileFormatter = logging.Formatter(fileFormat) 170 fileFormatter.datefmt = mainLogDateFormat 171 consoleLog.setFormatter(consoleFormatter) 172 fileLog.setFormatter(fileFormatter) 169 consoleLogHandler.setFormatter(consoleFormatter) 173 170 log = logging.getLogger(mainLogQualName) 174 171 log.setLevel(logging.DEBUG) 175 log.addHandler(consoleLog) 176 log.addHandler(fileLog) 172 log.addHandler(consoleLogHandler) 173 if mainLogFile is not None: 174 fileLogHandler = logging.handlers.RotatingFileHandler(filename=mainLogFile, 175 maxBytes=maxLogFileSize, encoding=defaultEncoding) 176 fileLogHandler.setLevel(mainLogFileLevel) 177 fileFormatter = logging.Formatter(fileFormat) 178 fileFormatter.datefmt = mainLogDateFormat 179 fileLogHandler.setFormatter(fileFormatter) 180 log.addHandler(fileLogHandler) 177 181 182 dbConsoleLogHandler = logging.StreamHandler() 183 dbConsoleLogHandler.setLevel(dbLogConsoleLevel) 184 dbConsoleFormatter = logging.Formatter(dbConsoleFormat) 185 dbConsoleFormatter.datefmt = dbLogDateFormat 186 dbConsoleLogHandler.setFormatter(dbConsoleFormatter) 178 187 dbActivityLog = logging.getLogger(dbLogQualName) 179 dbLog = logging.handlers.RotatingFileHandler(filename=dbLogFile, maxBytes=maxLogFileSize, 180 encoding=defaultEncoding) 181 dbActivityLog.addHandler(dbLog) 182 dbActivityLog.setLevel(dbLogFileLevel) 183 dbLog.setLevel(dbLogFileLevel) 184 185 186 ######################################################## 187 #### The commented out code was a first attempt at using Python logging, but with 188 #### the dabo.settings file being used to configure instead of logging.conf 189 ######################################################## 190 ######################################################## 188 dbActivityLog.setLevel(dbLogLevel) 189 dbActivityLog.addHandler(dbConsoleLogHandler) 190 if dbLogFile is not None: 191 dbFileLogHandler = logging.handlers.RotatingFileHandler(filename=dbLogFile, 192 maxBytes=maxLogFileSize, encoding=defaultEncoding) 193 dbFileLogHandler.setLevel(dbLogFileLevel) 194 dbFileFormatter = logging.Formatter(dbFileFormat) 195 dbFileFormatter.datefmt = dbLogDateFormat 196 dbFileLogHandler.setFormatter(dbFileFormatter) 197 dbActivityLog.addHandler(dbFileLogHandler) 198 199 200 def setMainLogFile(fname, level=None): 201 """Create the main file-based logger for the framework, and optionally 202 set the log level. If the passed 'fname' is None, any existing file-based 203 logger will be closed. 204 """ 205 if fname is None: 206 if dabo.fileLogHandler: 207 # Remove the existing handler 208 dabo.log.removeHandler(dabo.fileLogHandler) 209 dabo.fileLogHandler.close() 210 dabo.fileLogHandler = None 211 else: 212 if dabo.fileLogHandler: 213 # Close the existing handler first 214 dabo.log.removeHandler(dabo.fileLogHandler) 215 dabo.fileLogHandler.close() 216 dabo.fileLogHandler = None 217 dabo.fileLogHandler = logging.handlers.RotatingFileHandler(filename=fname, 218 maxBytes=dabo.maxLogFileSize, encoding=dabo.defaultEncoding) 219 if level: 220 dabo.fileLogHandler.setLevel(level) 221 else: 222 dabo.fileLogHandler.setLevel(dabo.mainLogFileLevel) 223 dabo.fileFormatter = logging.Formatter(dabo.fileFormat) 224 dabo.fileFormatter.datefmt = dabo.mainLogDateFormat 225 dabo.fileLogHandler.setFormatter(dabo.fileFormatter) 226 dabo.log.addHandler(dabo.fileLogHandler) 227 228 229 def setDbLogFile(fname, level=None): 230 """Create the dbActivity file-based logger for the framework, and optionally 231 set the log level. If the passed 'fname' is None, any existing file-based 232 logger will be closed. 233 """ 234 if fname is None: 235 if dabo.dbFileLogHandler: 236 # Remove the existing handler 237 dabo.dbActivityLog.removeHandler(dabo.dbFileLogHandler) 238 dabo.dbFileLogHandler.close() 239 dabo.dbFileLogHandler = None 240 else: 241 if dabo.dbFileLogHandler: 242 # Close the existing handler first 243 dabo.dbActivityLog.removeHandler(dabo.dbFileLogHandler) 244 dabo.dbFileLogHandler.close() 245 dabo.dbFileLogHandler = None 246 dabo.dbFileLogHandler = logging.handlers.RotatingFileHandler(filename=fname, 247 maxBytes=dabo.maxLogFileSize, encoding=dabo.defaultEncoding) 248 if level: 249 dabo.dbFileLogHandler.setLevel(level) 250 else: 251 dabo.dbFileLogHandler.setLevel(dabo.mainLogFileLevel) 252 dabo.dbFileFormatter = logging.Formatter(dabo.dbFileFormat) 253 dabo.dbFileFormatter.datefmt = dabo.dbLogDateFormat 254 dabo.dbFileLogHandler.setFormatter(dabo.dbFileFormatter) 255 dabo.dbActivityLog.addHandler(dabo.dbFileLogHandler) 256 191 257 192 258 # Install localization service for dabo. dApp will install localization service trunk/dabo/logging.conf.sample
r5962 r5975 1 1 2 [loggers] 2 3 keys=root,daboLog,dbActivity 3 4 4 5 [handlers] 5 keys=consoleHandler,fileHandler,db Handler6 keys=consoleHandler,fileHandler,dbConsoleHandler,dbFileHandler 6 7 7 8 [formatters] … … 20 21 [logger_dbActivity] 21 22 level=DEBUG 22 handlers=db Handler23 handlers=dbConsoleHandler,dbFileHandler 23 24 qualname=dabo.dbActivityLog 24 25 propagate=0 … … 36 37 args=("dabo.log", "a", 5242880, 7, "utf8") 37 38 38 [handler_dbHandler] 39 [handler_dbConsoleHandler] 40 class=StreamHandler 41 level=ERROR 42 formatter=basicFormatter 43 args=(sys.stdout, ) 44 45 [handler_dbFileHandler] 39 46 class=handlers.RotatingFileHandler 40 47 level=DEBUG trunk/dabo/settings.py
r5962 r5975 184 184 mainLogLevel = logging.DEBUG 185 185 mainLogQualName = "dabo.mainLog" 186 # Set the main log file to the null device initially187 mainLogFile = os.devnull186 # Set the main log file to None initially 187 mainLogFile = None 188 188 mainLogConsoleLevel = logging.ERROR 189 189 mainLogFileLevel = logging.ERROR 190 190 mainLogDateFormat = "%Y-%m-%d %H:%M:%S" 191 consoleFormat = "%(asctime)s - %(levelname)s - %(message)s"192 fileFormat = "%(asctime)s - %(levelname)s - %(message)s" 193 # Set the db file to the null device initially 194 dbLog File = os.devnull191 consoleFormat = fileFormat = "%(asctime)s - %(levelname)s - %(message)s" 192 maxLogFileSize = 5242880 # 5 MB 193 194 dbLogLevel = logging.DEBUG 195 195 dbLogQualName = "dabo.dbActivityLog" 196 # Set the db file to None initially 197 dbLogFile = None 198 dbLogConsoleLevel = logging.ERROR 196 199 dbLogFileLevel = logging.DEBUG 197 maxLogFileSize = 5242880 # 5 MB 200 dbLogDateFormat = "%Y-%m-%d %H:%M:%S" 201 dbConsoleFormat = dbFileFormat = "%(asctime)s - %(levelname)s - %(message)s" 202 dbMaxLogFileSize = 5242880 # 5 MB 198 203 199 204
