# $Id$ # # Copyright (C) 2005-2006 Greg Landrum and Rational Discovery LLC # # @@ All Rights Reserved @@ # This file is part of the RDKit. # The contents are covered by the terms of the BSD license # which is included in the file license.txt, found at the root # of the RDKit source tree. # from rdkit.rdBase import EnableLog, DisableLog, AttachFileToLog, LogMessage import sys, traceback _levels = ['rdApp.debug', 'rdApp.info', 'rdApp.warning', 'rdApp.error'] DEBUG = 0 INFO = 1 WARNING = 2 ERROR = 3 CRITICAL = 4 class logger(object): def logIt(self, dest, msg, *args, **kwargs): if (args): msg = msg % args LogMessage(dest, msg + '\n') if kwargs.get('exc_info', False): exc_type, exc_val, exc_tb = sys.exc_info() if exc_type: LogMessage(dest, '\n') txt = ''.join(traceback.format_exception(exc_type, exc_val, exc_tb)) LogMessage(dest, txt) def debug(self, msg, *args, **kwargs): self.logIt('rdApp.debug', 'DEBUG: ' + msg, *args, **kwargs) def error(self, msg, *args, **kwargs): self.logIt('rdApp.error', 'ERROR: ' + msg, *args, **kwargs) def info(self, msg, *args, **kwargs): self.logIt('rdApp.info', 'INFO: ' + msg, *args, **kwargs) def warning(self, msg, *args, **kwargs): self.logIt('rdApp.warning', 'WARNING: ' + msg, *args, **kwargs) def critical(self, msg, *args, **kwargs): self.logIt('rdApp.error', 'CRITICAL: ' + msg, *args, **kwargs) def setLevel(self, val): global _levels for i in range(val, len(_levels)): EnableLog(_levels[i]) for i in range(0, val): DisableLog(_levels[i])