{{{
#!python
# LOGGING
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
},
# Temporary SuspiciousOperation filter
'skip_suspicious_operations': {
'()': 'django.utils.log.CallbackFilter',
'callback': skip_suspicious_operations,
},
},
'formatters': {
'standard': {
'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s'
},
'simple': {
'format': '> %(levelname)-8s %(message)s'
},
'verbose': {
'format': '%(levelname)-8s %(message)s [%(asctime)s
%(filename)s:%(funcName)s:%(lineno)d]'
},
'simple_sql': {
'format': '%% %(asctime)s %(duration).3f %(sql)s' #
},
},
'handlers': {
'null': {
'level':'DEBUG',
'class':'django.utils.log.NullHandler',
},
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
'formatter': 'simple'
},
'console_sql':{
'level':'DEBUG',
'class':'logging.StreamHandler',
'formatter': 'simple_sql'
},
'sql_log_file': {
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename': APP_LOG_HOME + 'django_sql_log.log',
'maxBytes': 1024*1024*10, # 10 MB
'backupCount': 10,
'formatter':'simple_sql',
},
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false',
'skip_suspicious_operations'], # Temporary SuspiciousOperation filter
'class': 'common.log.AdminMultilineEmailHandler'
#'django.utils.log.AdminEmailHandler',
},
},
'loggers': {
'': {
'handlers': ['console', 'log_file'],
'level': 'DEBUG',
'propagate': False,
},
'z.caching': {
'handlers': ['null'],
'level': 'DEBUG',
'propagate': False,
},
'django.db.backends': {
'handlers': ['sql_log_file'],
'level': 'DEBUG',
'propagate': False,
},
'django': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': True,
},
'django.request': {
'handlers': ['console', 'mail_admins'],
'level': 'DEBUG',
'propagate': False
},
}
}
}}}
{{{
#!python
Traceback (most recent call last):
File
"/usr/local/Cellar/python/2.7.10_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/handlers.py",
line 76, in emit
if self.shouldRollover(record):
File
"/usr/local/Cellar/python/2.7.10_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/handlers.py",
line 156, in shouldRollover
msg = "%s\n" % self.format(record)
File
"/usr/local/Cellar/python/2.7.10_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py",
line 732, in format
return fmt.format(record)
File
"/usr/local/Cellar/python/2.7.10_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py",
line 474, in format
s = self._fmt % record.__dict__
KeyError: 'duration'
Logged from file schema.py, line 102
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/25321>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0
Comment:
It looks like you are also handling messages from the
`'django.db.backends.schema'` logger which doesn't include `duration`.
Perhaps a documentation update could clarify this?
--
Ticket URL: <https://code.djangoproject.com/ticket/25321#comment:1>
Comment (by netpositive36):
Replying to [comment:1 timgraham]:
> It looks like you are also handling messages from the
`'django.db.backends.schema'` logger which doesn't include `duration`.
Perhaps a documentation update could clarify this?
Yes, it'd be awesome.
--
Ticket URL: <https://code.djangoproject.com/ticket/25321#comment:2>
* type: Bug => Cleanup/optimization
* stage: Unreviewed => Accepted
* component: Database layer (models, ORM) => Documentation
* easy: 0 => 1
--
Ticket URL: <https://code.djangoproject.com/ticket/25321#comment:3>
* owner: nobody => romanfuentes
* status: new => assigned
--
Ticket URL: <https://code.djangoproject.com/ticket/25321#comment:4>
* status: assigned => new
* owner: romanfuentes =>
--
Ticket URL: <https://code.djangoproject.com/ticket/25321#comment:5>
* owner: => koxt
* status: new => assigned
--
Ticket URL: <https://code.djangoproject.com/ticket/25321#comment:6>
* owner: koxt =>
* status: assigned => new
--
Ticket URL: <https://code.djangoproject.com/ticket/25321#comment:7>
* owner: => akki
* status: new => assigned
* has_patch: 0 => 1
Comment:
PR: https://github.com/django/django/pull/6256
--
Ticket URL: <https://code.djangoproject.com/ticket/25321#comment:8>
* needs_better_patch: 0 => 1
--
Ticket URL: <https://code.djangoproject.com/ticket/25321#comment:9>
* owner: akki => MarkusH
* needs_better_patch: 1 => 0
Comment:
PR updated: https://github.com/django/django/pull/6289
--
Ticket URL: <https://code.djangoproject.com/ticket/25321#comment:10>
* stage: Accepted => Ready for checkin
--
Ticket URL: <https://code.djangoproject.com/ticket/25321#comment:11>
* status: assigned => closed
* resolution: => fixed
Comment:
In [changeset:"1cb65b8a77bd1b15f094b5857468c107784aad90" 1cb65b8a]:
{{{
#!CommitTicketReference repository=""
revision="1cb65b8a77bd1b15f094b5857468c107784aad90"
Fixed #26157 #25321 -- Added sql/params to extra context of schema logger
Thanks Akshesh Doshi for the initial patch and Tim Graham for the review
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/25321#comment:12>