/usr/share/pyshared/allmydata/util/log.py is in tahoe-lafs 1.9.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 54 55 56 57 58 59 60 61 | from allmydata.util import nummedobj
from foolscap.logging import log
from twisted.python import log as tw_log
NOISY = log.NOISY # 10
OPERATIONAL = log.OPERATIONAL # 20
UNUSUAL = log.UNUSUAL # 23
INFREQUENT = log.INFREQUENT # 25
CURIOUS = log.CURIOUS # 28
WEIRD = log.WEIRD # 30
SCARY = log.SCARY # 35
BAD = log.BAD # 40
msg = log.msg
# If log.err() happens during a unit test, the unit test should fail. We
# accomplish this by sending it to twisted.log too. When a WEIRD/SCARY/BAD
# thing happens that is nevertheless handled, use log.msg(failure=f,
# level=WEIRD) instead.
def err(failure=None, _why=None, **kwargs):
tw_log.err(failure, _why, **kwargs)
if 'level' not in kwargs:
kwargs['level'] = log.UNUSUAL
return log.err(failure, _why, **kwargs)
class LogMixin(object):
""" I remember a msg id and a facility and pass them to log.msg() """
def __init__(self, facility=None, grandparentmsgid=None):
self._facility = facility
self._grandparentmsgid = grandparentmsgid
self._parentmsgid = None
def log(self, msg, facility=None, parent=None, *args, **kwargs):
if facility is None:
facility = self._facility
if parent is None:
pmsgid = self._parentmsgid
if pmsgid is None:
pmsgid = self._grandparentmsgid
msgid = log.msg(msg, facility=facility, parent=pmsgid, *args, **kwargs)
if self._parentmsgid is None:
self._parentmsgid = msgid
return msgid
class PrefixingLogMixin(nummedobj.NummedObj, LogMixin):
""" I prepend a prefix to each msg, which includes my class and instance number as well as
a prefix supplied by my subclass. """
def __init__(self, facility=None, grandparentmsgid=None, prefix=''):
nummedobj.NummedObj.__init__(self)
LogMixin.__init__(self, facility, grandparentmsgid)
if prefix:
self._prefix = "%s(%s): " % (self.__repr__(), prefix)
else:
self._prefix = "%s: " % (self.__repr__(),)
def log(self, msg="", facility=None, parent=None, *args, **kwargs):
return LogMixin.log(self, self._prefix + msg, facility, parent, *args, **kwargs)
|