Mercurial > code > home > repos > homeauto
changeset 280:c192d37b2bc8
lots of logging updates (patch may be imprecise)
Ignore-this: cfe81299fe9a1e2b6b1140e9ec46aaf7
author | drewp@bigasterisk.com |
---|---|
date | Fri, 06 May 2016 17:32:41 -0700 |
parents | 57c9dbd2fdd0 |
children | 9728288c7f2f |
files | service/reasoning/actions.py service/reasoning/reasoning.py |
diffstat | 2 files changed, 45 insertions(+), 38 deletions(-) [+] |
line wrap: on
line diff
--- a/service/reasoning/actions.py Fri May 06 17:32:18 2016 -0700 +++ b/service/reasoning/actions.py Fri May 06 17:32:41 2016 -0700 @@ -53,7 +53,10 @@ if len(inferredObjects) == 0: self._putZero(deviceGraph, dev, pred, url) elif len(inferredObjects) == 1: - log.debug('inferredObject: %r', inferredObjects[0]) + log.debug('inferredObject: %s %s %r', + deviceGraph.qname(dev), + deviceGraph.qname(pred), + inferredObjects[0]) self._putInferred(deviceGraph, url, inferredObjects[0]) elif len(inferredObjects) > 1: log.info("conflict, ignoring: %s has %s of %s" % @@ -168,10 +171,8 @@ """ value = deviceGraph.value(obj, ROOM.putValue) if value is not None: - log.info("put %s to %s", value, putUrl) self._put(putUrl, payload=str(value)) elif isinstance(obj, Literal): - log.info("put %s to %s", obj, putUrl) self._put(putUrl, payload=str(obj)) else: log.warn("don't know what payload to put for %s. obj=%r",
--- a/service/reasoning/reasoning.py Fri May 06 17:32:18 2016 -0700 +++ b/service/reasoning/reasoning.py Fri May 06 17:32:41 2016 -0700 @@ -16,27 +16,24 @@ """ +import json, time, traceback, sys +from logging import getLogger, DEBUG, WARN + +from FuXi.Rete.RuleStore import N3RuleStore +from colorlog import ColoredFormatter +from docopt import docopt +from rdflib import Namespace, Literal, RDF, Graph from twisted.internet import reactor, task -from twisted.internet.defer import inlineCallbacks, gatherResults -import time, traceback, sys, json, logging -from rdflib import Graph, ConjunctiveGraph -from rdflib import Namespace, URIRef, Literal, RDF -from rdflib.parser import StringInputSource +from twisted.internet.defer import inlineCallbacks +import cyclone.web, cyclone.websocket -import cyclone.web, cyclone.websocket from inference import infer -from docopt import docopt from actions import Actions from inputgraph import InputGraph -from FuXi.Rete.RuleStore import N3RuleStore sys.path.append("../../lib") from logsetup import log -log.setLevel(logging.WARN) -outlog = logging.getLogger('output') -outlog.setLevel(logging.WARN) -fetchlog = logging.getLogger('fetch') -fetchlog.setLevel(logging.WARN) + sys.path.append('../../../ffg/ffg') import evtiming @@ -94,6 +91,11 @@ evtiming.serviceLevel.timed('graphChanged') def graphChanged(self, inputGraph, oneShot=False, oneShotGraph=None): + log.info("----------------------") + log.info("graphChanged oneShot=%s", oneShot) + if oneShot: + for s in oneShotGraph: + log.debug("oneshot stmt %r", s) t1 = time.time() oldInferred = self.inferred try: @@ -158,9 +160,9 @@ todo: this should do the right thing when many requests come in very quickly """ - print self.request.headers - log.info("immediateUpdate from %s", - self.request.headers.get('User-Agent', '?')) + log.info("immediateUpdate from %s %s", + self.request.headers.get('User-Agent', '?'), + self.request.headers['Host']) yield r.poll() self.set_status(202) @@ -277,20 +279,11 @@ ] cyclone.web.Application.__init__(self, handlers, reasoning=reasoning) -if __name__ == '__main__': - - arg = docopt(""" - Usage: reasoning.py [options] - - -v Verbose (and slow updates) - -f Verbose log for fetching - --source=<substr> Limit sources to those with this string. - """) +def configLogging(arg): + log.setLevel(WARN) - r = Reasoning() - if arg['-v']: - from colorlog import ColoredFormatter - log.handlers[0].setFormatter(ColoredFormatter("%(log_color)s%(levelname)-8s%(reset)s %(white)s%(message)s", + if arg['-i'] or arg['-r'] or arg['-o']: + log.handlers[0].setFormatter(ColoredFormatter("%(log_color)s%(levelname)-8s %(name)-6s %(filename)-12s:%(lineno)-3s %(funcName)-20s%(reset)s %(white)s%(message)s", datefmt=None, reset=True, log_colors={ @@ -304,14 +297,27 @@ style='%' )) + if arg['-i']: import twisted.python.log twisted.python.log.startLogging(sys.stdout) - log.setLevel(logging.DEBUG) - outlog.setLevel(logging.DEBUG) + + getLogger('fetch').setLevel(DEBUG if arg['-i'] else WARN) + log.setLevel(DEBUG if arg['-r'] else WARN) + getLogger('output').setLevel(DEBUG if arg['-o'] else WARN) + + +if __name__ == '__main__': + arg = docopt(""" + Usage: reasoning.py [options] - if arg['-f']: - fetchlog.setLevel(logging.DEBUG) - - task.LoopingCall(r.poll).start(1.0 if not arg['-v'] else 10) + -i Verbose log on the input phase (and slow down the polling) + -r Verbose log on the reasoning phase and web stuff + -o Verbose log on the actions/output phase + --source=<substr> Limit sources to those with this string. + """) + + r = Reasoning() + configLogging(arg) + task.LoopingCall(r.poll).start(1.0 if not arg['-i'] else 10) reactor.listenTCP(9071, Application(r), interface='::') reactor.run()