annotate Lib/distutils/log.py @ 78069:a8aa77458e12 3.2

Add c_size_t and c_ssize_t to the ctypes summary table.
author Antoine Pitrou <solipsis@pitrou.net>
date Thu, 12 Jul 2012 20:31:50 +0200
parents 0cafc20e5637
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23667
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
1 """A simple log mechanism styled after PEP 282."""
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
2
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
3 # The class here is styled after PEP 282 so that it could later be
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
4 # replaced with a standard Python logging implementation.
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
5
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
6 DEBUG = 1
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
7 INFO = 2
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
8 WARN = 3
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
9 ERROR = 4
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
10 FATAL = 5
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
11
26014
d424558d24f9 [Bug #620630] Flush stdout after logging every message. Without it,
Andrew M. Kuchling <amk@amk.ca>
parents: 23667
diff changeset
12 import sys
d424558d24f9 [Bug #620630] Flush stdout after logging every message. Without it,
Andrew M. Kuchling <amk@amk.ca>
parents: 23667
diff changeset
13
23667
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
14 class Log:
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
15
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
16 def __init__(self, threshold=WARN):
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
17 self.threshold = threshold
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
18
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
19 def _log(self, level, msg, args):
56164
3a3e145d552c Merged revisions 74999 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 52892
diff changeset
20 if level not in (DEBUG, INFO, WARN, ERROR, FATAL):
3a3e145d552c Merged revisions 74999 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 52892
diff changeset
21 raise ValueError('%s wrong log level' % str(level))
3a3e145d552c Merged revisions 74999 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 52892
diff changeset
22
23667
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
23 if level >= self.threshold:
52892
792bb885029f Merged revisions 70712,70714,70764-70765,70769-70771,70773,70776-70777,70788-70789,70824,70828,70832,70836,70842,70851,70855,70857,70866-70872,70883,70885,70893-70894,70896-70897,70903,70905-70907,70915,70927,70933,70951,70960,70962-70964,70998,71001,71006,71008,71010-71011,71019,71037,71056,71094,71101-71103,71106,71119,71123,71149-71150,71203,71212,71214-71217,71221,71240 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 43026
diff changeset
24 if args:
792bb885029f Merged revisions 70712,70714,70764-70765,70769-70771,70773,70776-70777,70788-70789,70824,70828,70832,70836,70842,70851,70855,70857,70866-70872,70883,70885,70893-70894,70896-70897,70903,70905-70907,70915,70927,70933,70951,70960,70962-70964,70998,71001,71006,71008,71010-71011,71019,71037,71056,71094,71101-71103,71106,71119,71123,71149-71150,71203,71212,71214-71217,71221,71240 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 43026
diff changeset
25 msg = msg % args
792bb885029f Merged revisions 70712,70714,70764-70765,70769-70771,70773,70776-70777,70788-70789,70824,70828,70832,70836,70842,70851,70855,70857,70866-70872,70883,70885,70893-70894,70896-70897,70903,70905-70907,70915,70927,70933,70951,70960,70962-70964,70998,71001,71006,71008,71010-71011,71019,71037,71056,71094,71101-71103,71106,71119,71123,71149-71150,71203,71212,71214-71217,71221,71240 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 43026
diff changeset
26 if level in (WARN, ERROR, FATAL):
792bb885029f Merged revisions 70712,70714,70764-70765,70769-70771,70773,70776-70777,70788-70789,70824,70828,70832,70836,70842,70851,70855,70857,70866-70872,70883,70885,70893-70894,70896-70897,70903,70905-70907,70915,70927,70933,70951,70960,70962-70964,70998,71001,71006,71008,71010-71011,71019,71037,71056,71094,71101-71103,71106,71119,71123,71149-71150,71203,71212,71214-71217,71221,71240 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 43026
diff changeset
27 stream = sys.stderr
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 33965
diff changeset
28 else:
52892
792bb885029f Merged revisions 70712,70714,70764-70765,70769-70771,70773,70776-70777,70788-70789,70824,70828,70832,70836,70842,70851,70855,70857,70866-70872,70883,70885,70893-70894,70896-70897,70903,70905-70907,70915,70927,70933,70951,70960,70962-70964,70998,71001,71006,71008,71010-71011,71019,71037,71056,71094,71101-71103,71106,71119,71123,71149-71150,71203,71212,71214-71217,71221,71240 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 43026
diff changeset
29 stream = sys.stdout
61752
0cafc20e5637 Issue #8663: distutils.log emulates backslashreplace error handler. Fix
Victor Stinner <victor.stinner@haypocalc.com>
parents: 56164
diff changeset
30 if stream.errors == 'strict':
0cafc20e5637 Issue #8663: distutils.log emulates backslashreplace error handler. Fix
Victor Stinner <victor.stinner@haypocalc.com>
parents: 56164
diff changeset
31 # emulate backslashreplace error handler
0cafc20e5637 Issue #8663: distutils.log emulates backslashreplace error handler. Fix
Victor Stinner <victor.stinner@haypocalc.com>
parents: 56164
diff changeset
32 encoding = stream.encoding
0cafc20e5637 Issue #8663: distutils.log emulates backslashreplace error handler. Fix
Victor Stinner <victor.stinner@haypocalc.com>
parents: 56164
diff changeset
33 msg = msg.encode(encoding, "backslashreplace").decode(encoding)
52892
792bb885029f Merged revisions 70712,70714,70764-70765,70769-70771,70773,70776-70777,70788-70789,70824,70828,70832,70836,70842,70851,70855,70857,70866-70872,70883,70885,70893-70894,70896-70897,70903,70905-70907,70915,70927,70933,70951,70960,70962-70964,70998,71001,71006,71008,71010-71011,71019,71037,71056,71094,71101-71103,71106,71119,71123,71149-71150,71203,71212,71214-71217,71221,71240 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 43026
diff changeset
34 stream.write('%s\n' % msg)
792bb885029f Merged revisions 70712,70714,70764-70765,70769-70771,70773,70776-70777,70788-70789,70824,70828,70832,70836,70842,70851,70855,70857,70866-70872,70883,70885,70893-70894,70896-70897,70903,70905-70907,70915,70927,70933,70951,70960,70962-70964,70998,71001,71006,71008,71010-71011,71019,71037,71056,71094,71101-71103,71106,71119,71123,71149-71150,71203,71212,71214-71217,71221,71240 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 43026
diff changeset
35 stream.flush()
23667
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
36
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
37 def log(self, level, msg, *args):
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
38 self._log(level, msg, args)
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
39
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
40 def debug(self, msg, *args):
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
41 self._log(DEBUG, msg, args)
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 27987
diff changeset
42
23667
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
43 def info(self, msg, *args):
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
44 self._log(INFO, msg, args)
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 27987
diff changeset
45
23667
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
46 def warn(self, msg, *args):
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
47 self._log(WARN, msg, args)
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 27987
diff changeset
48
23667
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
49 def error(self, msg, *args):
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
50 self._log(ERROR, msg, args)
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 27987
diff changeset
51
23667
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
52 def fatal(self, msg, *args):
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
53 self._log(FATAL, msg, args)
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
54
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
55 _global_log = Log()
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
56 log = _global_log.log
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
57 debug = _global_log.debug
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
58 info = _global_log.info
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
59 warn = _global_log.warn
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
60 error = _global_log.error
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
61 fatal = _global_log.fatal
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
62
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
63 def set_threshold(level):
32943
9fb5138f58dd make sure distutils logging is shut off in tests to avoid spurious output
Fred Drake <fdrake@acm.org>
parents: 32736
diff changeset
64 # return the old threshold for use from tests
9fb5138f58dd make sure distutils logging is shut off in tests to avoid spurious output
Fred Drake <fdrake@acm.org>
parents: 32736
diff changeset
65 old = _global_log.threshold
23667
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
66 _global_log.threshold = level
32943
9fb5138f58dd make sure distutils logging is shut off in tests to avoid spurious output
Fred Drake <fdrake@acm.org>
parents: 32736
diff changeset
67 return old
23667
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
68
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
69 def set_verbosity(v):
27987
2c751936f697 set_verbosity(): do something reasonable for out-of-range verbosity
Guido van Rossum <guido@python.org>
parents: 26285
diff changeset
70 if v <= 0:
23667
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
71 set_threshold(WARN)
27987
2c751936f697 set_verbosity(): do something reasonable for out-of-range verbosity
Guido van Rossum <guido@python.org>
parents: 26285
diff changeset
72 elif v == 1:
23667
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
73 set_threshold(INFO)
27987
2c751936f697 set_verbosity(): do something reasonable for out-of-range verbosity
Guido van Rossum <guido@python.org>
parents: 26285
diff changeset
74 elif v >= 2:
23667
dc7d5c2d5845 A simple log mechanism styled after the proposed std library module
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
75 set_threshold(DEBUG)