def setNativeLoggingLevel(self, level): validLevels = (logging.DEBUG, logging.INFO, logging.WARN, logging.ERROR, logging.CRITICAL) assert level in validLevels import ufora.native.Logging as NativeLogging NativeLogging.setLogLevel(level) if self.workerCoreLogFile: NativeLogging.setFileLogger(self.workerCoreLogFile)
def test_logging_basic(self): for level in levels: loggingLevel = getattr(logging, level) NativeLogging.setLogLevel(loggingLevel) for testLevel in levels: self.assertEqual( NativeLogging.shouldLog(getattr(logging, testLevel)), True if loggingLevel <= getattr(logging, testLevel) else False)
def configureLogging(self, level): logging.getLogger().setLevel(level) self.setNativeLoggingLevel(level) if self.logHandler is not None: logging.getLogger().removeHandler(self.logHandler) if logging.getLogger().handlers: logging.getLogger().handlers = [] handler = LogFormat.createFormatedLogHandler(level) logging.getLogger().addHandler(handler) self.logHandler = handler if self.scopedLoggingLevelOverrides: import ufora.native.Logging as NativeLogging for scopeRegex, fileRegex, level in self.scopedLoggingLevelOverrides: NativeLogging.setScopedLoggingLevel(scopeRegex, fileRegex, level)
def test_should_log(self): testMessage = "this is a test" for level in levels: loggingLevel = getattr(logging, level) NativeLogging.setLogLevel(loggingLevel) try: self.tryLogging( testMessage, { "DEBUG" : testMessage if loggingLevel <= logging.DEBUG else None, "INFO" : testMessage if loggingLevel <= logging.INFO else None, "WARN" : testMessage if loggingLevel <= logging.WARN else None, "ERROR" : testMessage if loggingLevel <= logging.ERROR else None, "CRITICAL" : testMessage if loggingLevel <= logging.CRITICAL else None } ) except: traceback.print_exc() raise pass
def test_should_log(self): testMessage = "this is a test" for level in levels: loggingLevel = getattr(logging, level) NativeLogging.setLogLevel(loggingLevel) try: self.tryLogging( testMessage, { "DEBUG": testMessage if loggingLevel <= logging.DEBUG else None, "INFO": testMessage if loggingLevel <= logging.INFO else None, "WARN": testMessage if loggingLevel <= logging.WARN else None, "ERROR": testMessage if loggingLevel <= logging.ERROR else None, "CRITICAL": testMessage if loggingLevel <= logging.CRITICAL else None }) except: traceback.print_exc() raise pass
def tryLogging(self, message, expected): for level in levels: NativeLogging.log(getattr(logging, level), message) output = self.read(1024) self.assertEqual(matchLog(level, output), expected[level])
def setLoggingLevel(level): logging.getLogger().setLevel(level) for handler in logging.getLogger().handlers: handler.setLevel(level) NativeLogging.setLogLevel(level)