node traverser: add logging for NotFound exception

This commit is contained in:
Helmut Merz 2017-04-10 11:47:17 +02:00
parent 30c13d57d7
commit 8f12304074

View file

@ -20,6 +20,7 @@
View class for Node objects. View class for Node objects.
""" """
from logging import getLogger
import urllib import urllib
from urlparse import urlparse, urlunparse from urlparse import urlparse, urlunparse
from zope import component, interface, schema from zope import component, interface, schema
@ -38,6 +39,7 @@ from zope.lifecycleevent import Attributes
from zope.formlib.form import Form, FormFields from zope.formlib.form import Form, FormFields
from zope.proxy import removeAllProxies from zope.proxy import removeAllProxies
from zope.publisher.defaultview import getDefaultViewName from zope.publisher.defaultview import getDefaultViewName
from zope.publisher.interfaces import NotFound
from zope.security import canAccess, canWrite, checkPermission from zope.security import canAccess, canWrite, checkPermission
from zope.security.proxy import removeSecurityProxy from zope.security.proxy import removeSecurityProxy
from zope.traversing.api import getParent, getParents, getPath from zope.traversing.api import getParent, getParents, getPath
@ -66,6 +68,7 @@ from loops import util
from loops.util import _ from loops.util import _
from loops.versioning.util import getVersion from loops.versioning.util import getVersion
logger = getLogger('loops.browser.node')
node_macros = ViewPageTemplateFile('node_macros.pt') node_macros = ViewPageTemplateFile('node_macros.pt')
info_macros = ViewPageTemplateFile('info.pt') info_macros = ViewPageTemplateFile('info.pt')
@ -997,7 +1000,12 @@ class NodeTraverser(ItemTraverser):
viewAnnotations['targetView'] = view viewAnnotations['targetView'] = view
view.logInfo('NodeTraverser:targetView = %r' % view) view.logInfo('NodeTraverser:targetView = %r' % view)
return self.context return self.context
obj = super(NodeTraverser, self).publishTraverse(request, name) try:
obj = super(NodeTraverser, self).publishTraverse(request, name)
except NotFound, e:
logger.warn('NodeTraverser: NotFound: URL = %s, name = %r' %
(request.URL, name))
raise
return obj return obj
def cleanUpTraversalStack(self, request, name): def cleanUpTraversalStack(self, request, name):