From: Ian Jackson Date: Sun, 2 Apr 2017 01:29:42 +0000 (+0100) Subject: filter out twisted stuff X-Git-Tag: hippotat/1.0.0~55^2~138 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=hippotat.git;a=commitdiff_plain;h=b83d422a15ee072d89643a85832400cb09e353ac;ds=sidebyside filter out twisted stuff --- diff --git a/hippotat/__init__.py b/hippotat/__init__.py index b6a84d9..0b827c9 100644 --- a/hippotat/__init__.py +++ b/hippotat/__init__.py @@ -5,6 +5,8 @@ signal.signal(signal.SIGINT, signal.SIG_DFL) import sys +from zope.interface import implementer + import twisted from twisted.internet import reactor import twisted.internet.endpoints @@ -47,6 +49,10 @@ class DBG(twisted.python.constants.Names): _hex_codec = codecs.getencoder('hex_codec') +#---------- logging ---------- + +org_stderr = sys.stderr + log = twisted.logger.Logger() debug_set = set([x for x in DBG.iterconstants() if x <= DBG.HTTP]) @@ -62,6 +68,25 @@ def log_debug(dflag, msg, idof=None, d=None): msg += ' ' + d log.info('{dflag} {msgcore}', dflag=dflag, msgcore=msg) +@implementer(twisted.logger.ILogFilterPredicate) +class LogNotBoringTwisted: + def __call__(self, event): + yes = twisted.logger.PredicateResult.yes + no = twisted.logger.PredicateResult.no + try: + if event.get('log_level') != LogLevel.info: + return yes + try: + dflag = event.get('dflag') + except KeyError: + dflag = DBG.TWISTED + return yes if (dflag in debug_set) else no + except Exception: + print(traceback.format_exc(), file=org_stderr) + return yes + +#---------- default config ---------- + defcfg = ''' [DEFAULT] #[] overrides @@ -376,9 +401,13 @@ def common_startup(): stdout_obs = twisted.logger.FileLogObserver(sys.stdout, log_formatter) stderr_obs = twisted.logger.FileLogObserver(sys.stderr, log_formatter) pred = twisted.logger.LogLevelFilterPredicate(LogLevel.error) - log_observer = twisted.logger.FilteringLogObserver( + stdsomething_obs = twisted.logger.FilteringLogObserver( stderr_obs, [pred], stdout_obs ) + log_observer = twisted.logger.FilteringLogObserver( + stdsomething_obs, [LogNotBoringTwisted()] + ) + #log_observer = stdsomething_obs twisted.logger.globalLogBeginner.beginLoggingTo( [ log_observer, crash_on_critical ] )