python-2.5.2/win32/Lib/distutils/log.py
changeset 0 ae805ac0140d
equal deleted inserted replaced
-1:000000000000 0:ae805ac0140d
       
     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             if not args:
       
    24                 # msg may contain a '%'. If args is empty,
       
    25                 # don't even try to string-format
       
    26                 print msg
       
    27             else:
       
    28                 print msg % args
       
    29             sys.stdout.flush()
       
    30 
       
    31     def log(self, level, msg, *args):
       
    32         self._log(level, msg, args)
       
    33 
       
    34     def debug(self, msg, *args):
       
    35         self._log(DEBUG, msg, args)
       
    36 
       
    37     def info(self, msg, *args):
       
    38         self._log(INFO, msg, args)
       
    39 
       
    40     def warn(self, msg, *args):
       
    41         self._log(WARN, msg, args)
       
    42 
       
    43     def error(self, msg, *args):
       
    44         self._log(ERROR, msg, args)
       
    45 
       
    46     def fatal(self, msg, *args):
       
    47         self._log(FATAL, msg, args)
       
    48 
       
    49 _global_log = Log()
       
    50 log = _global_log.log
       
    51 debug = _global_log.debug
       
    52 info = _global_log.info
       
    53 warn = _global_log.warn
       
    54 error = _global_log.error
       
    55 fatal = _global_log.fatal
       
    56 
       
    57 def set_threshold(level):
       
    58     # return the old threshold for use from tests
       
    59     old = _global_log.threshold
       
    60     _global_log.threshold = level
       
    61     return old
       
    62 
       
    63 def set_verbosity(v):
       
    64     if v <= 0:
       
    65         set_threshold(WARN)
       
    66     elif v == 1:
       
    67         set_threshold(INFO)
       
    68     elif v >= 2:
       
    69         set_threshold(DEBUG)