home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Freeware 31 / FreelogHS31.iso / Texte / scribus / scribus-1.3.3.9-win32-install.exe / lib / distutils / log.py < prev    next >
Text File  |  2004-11-18  |  1KB  |  65 lines

  1. """A simple log mechanism styled after PEP 282."""
  2.  
  3. # This module should be kept compatible with Python 2.1.
  4.  
  5. # The class here is styled after PEP 282 so that it could later be
  6. # replaced with a standard Python logging implementation.
  7.  
  8. DEBUG = 1
  9. INFO = 2
  10. WARN = 3
  11. ERROR = 4
  12. FATAL = 5
  13.  
  14. import sys
  15.  
  16. class Log:
  17.  
  18.     def __init__(self, threshold=WARN):
  19.         self.threshold = threshold
  20.  
  21.     def _log(self, level, msg, args):
  22.         if level >= self.threshold:
  23.             print msg % args
  24.             sys.stdout.flush()
  25.  
  26.     def log(self, level, msg, *args):
  27.         self._log(level, msg, args)
  28.  
  29.     def debug(self, msg, *args):
  30.         self._log(DEBUG, msg, args)
  31.  
  32.     def info(self, msg, *args):
  33.         self._log(INFO, msg, args)
  34.  
  35.     def warn(self, msg, *args):
  36.         self._log(WARN, msg, args)
  37.  
  38.     def error(self, msg, *args):
  39.         self._log(ERROR, msg, args)
  40.  
  41.     def fatal(self, msg, *args):
  42.         self._log(FATAL, msg, args)
  43.  
  44. _global_log = Log()
  45. log = _global_log.log
  46. debug = _global_log.debug
  47. info = _global_log.info
  48. warn = _global_log.warn
  49. error = _global_log.error
  50. fatal = _global_log.fatal
  51.  
  52. def set_threshold(level):
  53.     # return the old threshold for use from tests
  54.     old = _global_log.threshold
  55.     _global_log.threshold = level
  56.     return old
  57.  
  58. def set_verbosity(v):
  59.     if v <= 0:
  60.         set_threshold(WARN)
  61.     elif v == 1:
  62.         set_threshold(INFO)
  63.     elif v >= 2:
  64.         set_threshold(DEBUG)
  65.