blob: 9afef8f8e09f4b48bf849d402d62fce89d2d409d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#! /usr/bin/env python
# Copyright (c) 2007-2008 PediaPress GmbH
# See README.txt for additional licensing information.
import sys
class Stdout(object):
"""late-bound sys.stdout"""
def write(self, msg):
sys.stdout.write(msg)
def flush(self):
sys.stdout.flush()
class Stderr(object):
"""late-bound sys.stderr"""
def write(self, msg):
sys.stderr.write(msg)
def flush(self):
sys.stderr.flush()
class Log(object):
logfile = Stderr()
def __init__(self, prefix=None):
if prefix is None:
self._prefix = []
else:
if isinstance(prefix, basestring):
self._prefix = [prefix]
else:
self._prefix = prefix
def __getattr__(self, name):
return Log([self, name])
def __nonzero__(self):
return bool(self._prefix)
def __str__(self):
return ".".join(str(x) for x in self._prefix if x)
def __call__(self, msg, *args):
if not self.logfile:
return
if args:
msg = " ".join(([msg] + [repr(x) for x in args]))
s = "%s >> %s\n" % (".".join(str(x) for x in self._prefix if x), msg)
self.logfile.write(s)
|