Thanks Tim, let me make sure I understand the current functionality: - django.request is the logger for views (broadly speaking) any logging "elsewhere" would go to logger "django" instead. - django.request is set to propagate=False
- if DEBUG is False, an exception in a view would go to mail_admins, but *not* to the console, because propagate=False - if DEBUG is False a logging.info outside of django.request would end up going nowhere anyway, because the console handler has require_debug_true - if DEBUG is True, an exception in a view goes only into the rendered debug HTML message - if DEBUG is True, a logging.info in a view goes nowhere, because propagate=False (a quick test confirms this, but i may have done it wrong?) - if DEBUG is True, a logging.info outside of django.request would go to the console So I have two questions: 1/ what is the scope of django.request? Am I right in thinking it's "pretty much everything you normally do with django" because it's "any code that's invoked while handling a wsgi request" - so, in normal use, everything in views.py, forms.py, models.py etc.... the only obvious way i can think of not going through a request would be a management command? 2/ wouldn't it be better if, when DEBUG=True, more logging stuff ended up in the console? logging for management commands going to stderr by default is great, but wouldn't it be cool if logging.info and logging.exception in a view also went to stderr? Happy to update the docs if i can get answers up to 1/ at least :) On 1 January 2014 20:46, Tim Graham <[email protected]> wrote: > I believe tracebacks are handled by the 'django.request' logger, not the > 'django' logger. > > You may find the commit that added that documentation and the related > ticket helpful: > https://github.com/django/django/commit/f0f327bb > https://code.djangoproject.com/ticket/18993 > > Documentation improvements would be welcome if you feel they are > appropriate. > > > On Saturday, December 28, 2013 8:11:00 AM UTC-5, Harry Percival wrote: > >> The docs say: >> >> >> *"All messages reaching the django catch-all logger when DEBUG >> <https://docs.djangoproject.com/en/1.6/ref/settings/#std:setting-DEBUG> is >> True are sent to the console. They are simply discarded (sent to >> NullHandler) when DEBUG >> <https://docs.djangoproject.com/en/1.6/ref/settings/#std:setting-DEBUG> is >> False."* >> https://docs.djangoproject.com/en/1.6/topics/logging/# >> django-s-default-logging-configuration >> >> From reading that, I would (naively?) expect to see tracebacks in the >> terminal I'm running manage.py runserver, if any of my views raise an >> exception for example. I don't see any, however. >> >> Is this because the exception *is* caught, in that it gets intercepted >> and turned into the nice django debug page? Am i misinterpreting the >> docs? If so, would it be worth adding a couple of words of clarification >> in case anyone else might misread it like me? Assuming anyone is that >> silly? >> >> Of course, I would rather prefer it if exception tracebacks *did* go to >> the console by default, as well as to mail_admins and/or to a nice django >> debug page. But maybe that's just me. >> >> hp >> >> PS minimal repro: >> >> django-admin.py startproject myproj >> python manage.py startapp myapp >> >> >> >> *urls.py:* >> from django.conf.urls import patterns, include, url >> urlpatterns = patterns('', >> # Examples: >> url(r'^$', 'myapp.views.home', name='home'), >> ) >> >> >> *myapp/views.py:* >> def home(request): >> raise Exception('arg') >> >> PPS apologies for x-post from django-users >> >> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "Django users" group. >> To unsubscribe from this topic, visit https://groups.google.com/d/ >> topic/django-users/tCw4bqw2tsI/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected]. >> To post to this group, send email to [email protected]. >> >> Visit this group at http://groups.google.com/group/django-users. >> To view this discussion on the web visit https://groups.google.com/d/ >> msgid/django-users/60d3c4c6-22f8-4de6-a376-6230c33ad0a9% >> 40googlegroups.com. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> >> -- >> ------------------------------ >> Harry J.W. Percival >> ------------------------------ >> Twitter: @hjwp >> Mobile: +44 (0) 78877 02511 >> Skype: harry.percival >> > -- ------------------------------ Harry J.W. Percival ------------------------------ Twitter: @hjwp Mobile: +44 (0) 78877 02511 Skype: harry.percival -- You received this message because you are subscribed to the Google Groups "Django developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-developers. To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CACFvh9-7AcxSckFL_%3DC2uxyT-w87sQezTCXXeFAseF45Z7-xFA%40mail.gmail.com. For more options, visit https://groups.google.com/groups/opt_out.
