mirror of
https://github.com/django/django.git
synced 2025-10-31 09:41:08 +00:00
Fixed #18773 -- Added logging for template variable resolving
Added a django.template logger without a default handler. Added logging if there is an exception while resolving variables in a template.
This commit is contained in:
committed by
Tim Graham
parent
0c91a419f8
commit
dc5b01ad05
@@ -51,6 +51,7 @@ u'<html></html>'
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import logging
|
||||
import re
|
||||
import warnings
|
||||
from functools import partial
|
||||
@@ -125,6 +126,8 @@ libraries = {}
|
||||
# global list of libraries to load by default for a new parser
|
||||
builtins = []
|
||||
|
||||
logger = logging.getLogger('django.template')
|
||||
|
||||
|
||||
class TemplateSyntaxError(Exception):
|
||||
pass
|
||||
@@ -209,6 +212,7 @@ class Template(object):
|
||||
try:
|
||||
if context.template is None:
|
||||
with context.bind_template(self):
|
||||
context.template_name = self.name
|
||||
return self._render(context)
|
||||
else:
|
||||
return self._render(context)
|
||||
@@ -893,6 +897,9 @@ class Variable(object):
|
||||
else:
|
||||
raise
|
||||
except Exception as e:
|
||||
template_name = getattr(context, 'template_name', 'unknown')
|
||||
logger.debug('{} - {}'.format(template_name, e))
|
||||
|
||||
if getattr(e, 'silent_variable_failure', False):
|
||||
current = context.template.engine.string_if_invalid
|
||||
else:
|
||||
|
||||
@@ -141,6 +141,7 @@ class Context(BaseContext):
|
||||
self._current_app = current_app
|
||||
self.use_l10n = use_l10n
|
||||
self.use_tz = use_tz
|
||||
self.template_name = "unknown"
|
||||
self.render_context = RenderContext()
|
||||
# Set to the original template -- as opposed to extended or included
|
||||
# templates -- during rendering, see bind_template.
|
||||
|
||||
Reference in New Issue
Block a user