To keep or not to keep: logging of undefined template variables

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

To keep or not to keep: logging of undefined template variables

Tim Graham-2
Ticket #18773 [0] added logging of undefined template variables in Django 1.9 [1], however, I've seen several reports of users finding this logging more confusing than helpful. For example, admin templates log errors about missing is_popup variables [2] which is how the template are designed (is_popup is only in the contexts of pop ups) and the TECHNICAL_404_TEMPLATE also logs errors without any obvious solution about how to prevent that [3].

I'm thinking it might be better to remove this noisy, generally unhelpful logging. What do you think?

[0] https://code.djangoproject.com/ticket/18773
[1] https://github.com/django/django/commit/dc5b01ad05e50ccde688c73c2ed3334a956076b0
[2] https://groups.google.com/d/topic/django-users/6Ve9dcv23sI/discussion
[3] https://code.djangoproject.com/ticket/26886

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/a428f373-ef0c-4575-8a84-69a4beda154c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: To keep or not to keep: logging of undefined template variables

Tim Martin
I don't have any objection to removing this. However, the thought occurs that my patch to the handling of undefined variables could enhance this to make it more useful. I think we could log in the case where a conditional expression actually depends on an undefined variable. I haven't thought about it properly, but presumably the expression evaluation can even take account of short-circuiting, so that:

  {% if defined_value or some_undefined_value %}

correctly warns only in the case where defined_value is false. Of course, this won't help in the case of the admin template example you gave, where the conditional depends directly on the undefined value.

The obvious drawback is that I think my patch is going to be abandoned, so I think this is a purely theoretical possibility. But if anyone likes the sound of it I can think through it a little more carefully.

Tim

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/5cf29e82-19d7-4567-b537-21a77faf88a9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: To keep or not to keep: logging of undefined template variables

Adam Johnson-2
Doesn't sound like there's much impetus either way, and it's confusing people, so I'd say remove it. Or maybe make it optional, default off?

On 19 March 2017 at 07:52, Tim Martin <[hidden email]> wrote:
I don't have any objection to removing this. However, the thought occurs that my patch to the handling of undefined variables could enhance this to make it more useful. I think we could log in the case where a conditional expression actually depends on an undefined variable. I haven't thought about it properly, but presumably the expression evaluation can even take account of short-circuiting, so that:

  {% if defined_value or some_undefined_value %}

correctly warns only in the case where defined_value is false. Of course, this won't help in the case of the admin template example you gave, where the conditional depends directly on the undefined value.

The obvious drawback is that I think my patch is going to be abandoned, so I think this is a purely theoretical possibility. But if anyone likes the sound of it I can think through it a little more carefully.

Tim

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/5cf29e82-19d7-4567-b537-21a77faf88a9%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Adam

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAMyDDM0Z-baLDh_wu59qjCxrVy%3D3xq_4xCdxP8nhZfNhL2zxew%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: To keep or not to keep: logging of undefined template variables

Luke Plant-2
In reply to this post by Tim Graham-2

My general policy is that warnings should only be logged if there is a good way to silence them. A good way means:

1) fix the bug which is causing them (only applies if there is genuinely a bug or bad practice that should be fixed)

2) disable the warning in a fine tuned way i.e. you can indicate, without much work or hackiness, *this* instance generating the warning is actually fine.

Otherwise, these warnings are useless or worse - people often:

* just turn off all warnings of this type because they are too noisy (so they become useless)

* or end up turning off even more than necessary (hurting the project)

* or miss genuine issues because of the noise.

It sounds like these warnings are of the unhelpful kind.


For implementing option 2, the only thing I could think of is extending the template syntax with something that indicates you are expecting the value to be missing e.g.:

   {% if foo? %}

   {{ foo? }}

This would clearly be a big change though.


Luke


On 16/03/17 22:03, Tim Graham wrote:
Ticket #18773 [0] added logging of undefined template variables in Django 1.9 [1], however, I've seen several reports of users finding this logging more confusing than helpful. For example, admin templates log errors about missing is_popup variables [2] which is how the template are designed (is_popup is only in the contexts of pop ups) and the TECHNICAL_404_TEMPLATE also logs errors without any obvious solution about how to prevent that [3].

I'm thinking it might be better to remove this noisy, generally unhelpful logging. What do you think?

[0] https://code.djangoproject.com/ticket/18773
[1] https://github.com/django/django/commit/dc5b01ad05e50ccde688c73c2ed3334a956076b0
[2] https://groups.google.com/d/topic/django-users/6Ve9dcv23sI/discussion
[3] https://code.djangoproject.com/ticket/26886
--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/a428f373-ef0c-4575-8a84-69a4beda154c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/56aa2380-64a0-aa39-d9ec-5d6124f4ebde%40cantab.net.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: To keep or not to keep: logging of undefined template variables

Melvyn Sopacua
In reply to this post by Tim Graham-2

On Thursday 16 March 2017 12:03:07 Tim Graham wrote:

> Ticket #18773 [0] added logging of undefined template variables in

> Django 1.9 [1], however, I've seen several reports of users finding

> this logging more confusing than helpful.

 

With channels hitting 2.0 and the already large stack of moving parts surrounding Django you need some basic system administration skills and programming experience to work with the system. And there are quite a few examples to link to from the user's list that deal with those moving parts rather then Django itself. It is not an application that you download, install and run.

 

An introduction "What you need to know before starting Django" would help a lot in this respect and explaining the noisiness of some logging belongs in there.

 

Because it *is* useful if you defined that variable to True in your settings, and it's working in all projects but this one. It could be there's an extra piece of context middleware that uses the same name and deletes the variable from the context. It could be there's a Mixin missing in the view hierarchy. Or a typo you don't notice anymore after plowing through 20+ included template bits.

 

Noisy logging is exactly what you want when debugging. It should log things that may be working as designed, especially things that are ambiguous (like undefined and false).

 

Another thing is that logging is the ugly duckling of Django. It's not mentioned much if at all in the tutorial. It is not mentioned at all in "How to write reusable apps" and it shows in the eco system. It's like finding a diamond when an app actually has logging implemented.

 

But it also means that novice users touching the LOGGING configuration are exceptions and I don't think Django should cater to the exceptions.

 

--

Melvyn Sopacua

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/70987480.KqXOiOpzpV%40devstation.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: To keep or not to keep: logging of undefined template variables

Vlastimil Zíma-2
-1 to the removal. I was annoyed by the logging at first, but then I started to clean individual logs. Half way through, I found several usages of long removed variables, one unused template (as a side effect) and I updated several views to always provide defined context variables.

All in all, I consider the warnings very useful for a cleaning, though I wouldn't be against an option to silence them. Which can already by accomplished by LOGGING, can't it?

Vlastik

Dne neděle 26. března 2017 11:14:23 UTC+2 Melvyn Sopacua napsal(a):

On Thursday 16 March 2017 12:03:07 Tim Graham wrote:

> Ticket #18773 [0] added logging of undefined template variables in

> Django 1.9 [1], however, I've seen several reports of users finding

> this logging more confusing than helpful.

 

With channels hitting 2.0 and the already large stack of moving parts surrounding Django you need some basic system administration skills and programming experience to work with the system. And there are quite a few examples to link to from the user's list that deal with those moving parts rather then Django itself. It is not an application that you download, install and run.

 

An introduction "What you need to know before starting Django" would help a lot in this respect and explaining the noisiness of some logging belongs in there.

 

Because it *is* useful if you defined that variable to True in your settings, and it's working in all projects but this one. It could be there's an extra piece of context middleware that uses the same name and deletes the variable from the context. It could be there's a Mixin missing in the view hierarchy. Or a typo you don't notice anymore after plowing through 20+ included template bits.

 

Noisy logging is exactly what you want when debugging. It should log things that may be working as designed, especially things that are ambiguous (like undefined and false).

 

Another thing is that logging is the ugly duckling of Django. It's not mentioned much if at all in the tutorial. It is not mentioned at all in "How to write reusable apps" and it shows in the eco system. It's like finding a diamond when an app actually has logging implemented.

 

But it also means that novice users touching the LOGGING configuration are exceptions and I don't think Django should cater to the exceptions.

 

--

Melvyn Sopacua

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: To keep or not to keep: logging of undefined template variables

Anthony King
-1 for removing logs. Like Vlastimil, it's helped me spot a couple of stray bugs.

What I'd actually like to see is this becoming stricter, with the end goal of errors raising when using undefined variables.

For the verbosity, perhaps there's a middle ground? only log once per variable access per template context, and provide a formatter that will clean up the output?

I believe in debug mode, you have access to line numbers and character positions, so the final output could look something like this:

``
some_app/home.html:32:24: Undefined variable: missing_variable
``

I'm unsure how much effort this would take, but it would definitely make the logging a lot more user + developer friendly.

On 20 June 2017 at 08:48, Vlastimil Zíma <[hidden email]> wrote:
-1 to the removal. I was annoyed by the logging at first, but then I started to clean individual logs. Half way through, I found several usages of long removed variables, one unused template (as a side effect) and I updated several views to always provide defined context variables.

All in all, I consider the warnings very useful for a cleaning, though I wouldn't be against an option to silence them. Which can already by accomplished by LOGGING, can't it?

Vlastik

Dne neděle 26. března 2017 11:14:23 UTC+2 Melvyn Sopacua napsal(a):

On Thursday 16 March 2017 12:03:07 Tim Graham wrote:

> Ticket #18773 [0] added logging of undefined template variables in

> Django 1.9 [1], however, I've seen several reports of users finding

> this logging more confusing than helpful.

 

With channels hitting 2.0 and the already large stack of moving parts surrounding Django you need some basic system administration skills and programming experience to work with the system. And there are quite a few examples to link to from the user's list that deal with those moving parts rather then Django itself. It is not an application that you download, install and run.

 

An introduction "What you need to know before starting Django" would help a lot in this respect and explaining the noisiness of some logging belongs in there.

 

Because it *is* useful if you defined that variable to True in your settings, and it's working in all projects but this one. It could be there's an extra piece of context middleware that uses the same name and deletes the variable from the context. It could be there's a Mixin missing in the view hierarchy. Or a typo you don't notice anymore after plowing through 20+ included template bits.

 

Noisy logging is exactly what you want when debugging. It should log things that may be working as designed, especially things that are ambiguous (like undefined and false).

 

Another thing is that logging is the ugly duckling of Django. It's not mentioned much if at all in the tutorial. It is not mentioned at all in "How to write reusable apps" and it shows in the eco system. It's like finding a diamond when an app actually has logging implemented.

 

But it also means that novice users touching the LOGGING configuration are exceptions and I don't think Django should cater to the exceptions.

 

--

Melvyn Sopacua

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CALs0z1YDm5OYt%2B_spdXz4pgoA652fPg8V9kuW_sMWTV-qHyeEQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: To keep or not to keep: logging of undefined template variables

Tim Graham-2
We received a report that shows the large number of undefined variable warnings when rendering an admin changelist page [0].

I'm still not sure what the solution should be, but I created #28526 [1] to track this problem: finding a remedy to the problem of verbose, often unhelpful logging of undefined variables.

I don't think "the end goal of errors raising when using undefined variables" is feasible. My sense is that relying on the behavior of undefined variables is too entrenched in the Django template language to change it at this point. (If someone wanted to try to fix all the warnings in the admin templates, that might provide a useful data point). See the "Template handling of undefined variables" thread [2] for a longer discussion.

[0] https://code.djangoproject.com/ticket/28516
[1] https://code.djangoproject.com/ticket/28526
[2] https://groups.google.com/d/topic/django-developers/LT5ESP0w0gQ/discussion

On Tuesday, June 20, 2017 at 4:12:52 AM UTC-4, Anthony King wrote:
-1 for removing logs. Like Vlastimil, it's helped me spot a couple of stray bugs.

What I'd actually like to see is this becoming stricter, with the end goal of errors raising when using undefined variables.

For the verbosity, perhaps there's a middle ground? only log once per variable access per template context, and provide a formatter that will clean up the output?

I believe in debug mode, you have access to line numbers and character positions, so the final output could look something like this:

``
some_app/home.html:32:24: Undefined variable: missing_variable
``

I'm unsure how much effort this would take, but it would definitely make the logging a lot more user + developer friendly.

On 20 June 2017 at 08:48, Vlastimil Zíma <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="SGxIBz4pAwAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">vlas...@...> wrote:
-1 to the removal. I was annoyed by the logging at first, but then I started to clean individual logs. Half way through, I found several usages of long removed variables, one unused template (as a side effect) and I updated several views to always provide defined context variables.

All in all, I consider the warnings very useful for a cleaning, though I wouldn't be against an option to silence them. Which can already by accomplished by LOGGING, can't it?

Vlastik

Dne neděle 26. března 2017 11:14:23 UTC+2 Melvyn Sopacua napsal(a):

On Thursday 16 March 2017 12:03:07 Tim Graham wrote:

> Ticket #18773 [0] added logging of undefined template variables in

> Django 1.9 [1], however, I've seen several reports of users finding

> this logging more confusing than helpful.

 

With channels hitting 2.0 and the already large stack of moving parts surrounding Django you need some basic system administration skills and programming experience to work with the system. And there are quite a few examples to link to from the user's list that deal with those moving parts rather then Django itself. It is not an application that you download, install and run.

 

An introduction "What you need to know before starting Django" would help a lot in this respect and explaining the noisiness of some logging belongs in there.

 

Because it *is* useful if you defined that variable to True in your settings, and it's working in all projects but this one. It could be there's an extra piece of context middleware that uses the same name and deletes the variable from the context. It could be there's a Mixin missing in the view hierarchy. Or a typo you don't notice anymore after plowing through 20+ included template bits.

 

Noisy logging is exactly what you want when debugging. It should log things that may be working as designed, especially things that are ambiguous (like undefined and false).

 

Another thing is that logging is the ugly duckling of Django. It's not mentioned much if at all in the tutorial. It is not mentioned at all in "How to write reusable apps" and it shows in the eco system. It's like finding a diamond when an app actually has logging implemented.

 

But it also means that novice users touching the LOGGING configuration are exceptions and I don't think Django should cater to the exceptions.

 

--

Melvyn Sopacua

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="SGxIBz4pAwAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">django-develop...@googlegroups.com.
To post to this group, send email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="SGxIBz4pAwAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">django-d...@googlegroups.com.
Visit this group at <a href="https://groups.google.com/group/django-developers" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://groups.google.com/group/django-developers&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/group/django-developers&#39;;return true;">https://groups.google.com/group/django-developers.
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com?utm_medium=email&amp;utm_source=footer" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com.

For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/19330a21-6934-4765-994b-488b7d6c0aae%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: To keep or not to keep: logging of undefined template variables

Sjoerd Job Postmus
As an anecdotal data-point: at the company I'm working at, we are running Django with a custom object as "string_if_invalid" that raises an exception on string-interpolation. This way missing template variables *do* get converted to an exception. I myself am very happy with this solution, as it forces us to make sure templates and views match up correctliy. The essence is that it's better to get an exception, than incorrect output (Yes, you should test beforehand, but sometimes there's a combinatorial explosion that makes that hard).


On Thursday, August 24, 2017 at 5:21:38 PM UTC+2, Tim Graham wrote:
We received a report that shows the large number of undefined variable warnings when rendering an admin changelist page [0].

I'm still not sure what the solution should be, but I created #28526 [1] to track this problem: finding a remedy to the problem of verbose, often unhelpful logging of undefined variables.

I don't think "the end goal of errors raising when using undefined variables" is feasible. My sense is that relying on the behavior of undefined variables is too entrenched in the Django template language to change it at this point. (If someone wanted to try to fix all the warnings in the admin templates, that might provide a useful data point). See the "Template handling of undefined variables" thread [2] for a longer discussion.

[0] <a href="https://code.djangoproject.com/ticket/28516" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fticket%2F28516\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGxZ2PPLEWjrYwxb9EhdsdfFKPPag&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fticket%2F28516\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGxZ2PPLEWjrYwxb9EhdsdfFKPPag&#39;;return true;">https://code.djangoproject.com/ticket/28516
[1] <a href="https://code.djangoproject.com/ticket/28526" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fticket%2F28526\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGqa1uVIF9pV86Qk3Bw0PJDN9Nq6w&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fticket%2F28526\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGqa1uVIF9pV86Qk3Bw0PJDN9Nq6w&#39;;return true;">https://code.djangoproject.com/ticket/28526
[2] <a href="https://groups.google.com/d/topic/django-developers/LT5ESP0w0gQ/discussion" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://groups.google.com/d/topic/django-developers/LT5ESP0w0gQ/discussion&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/topic/django-developers/LT5ESP0w0gQ/discussion&#39;;return true;">https://groups.google.com/d/topic/django-developers/LT5ESP0w0gQ/discussion

On Tuesday, June 20, 2017 at 4:12:52 AM UTC-4, Anthony King wrote:
-1 for removing logs. Like Vlastimil, it's helped me spot a couple of stray bugs.

What I'd actually like to see is this becoming stricter, with the end goal of errors raising when using undefined variables.

For the verbosity, perhaps there's a middle ground? only log once per variable access per template context, and provide a formatter that will clean up the output?

I believe in debug mode, you have access to line numbers and character positions, so the final output could look something like this:

``
some_app/home.html:32:24: Undefined variable: missing_variable
``

I'm unsure how much effort this would take, but it would definitely make the logging a lot more user + developer friendly.

On 20 June 2017 at 08:48, Vlastimil Zíma <[hidden email]> wrote:
-1 to the removal. I was annoyed by the logging at first, but then I started to clean individual logs. Half way through, I found several usages of long removed variables, one unused template (as a side effect) and I updated several views to always provide defined context variables.

All in all, I consider the warnings very useful for a cleaning, though I wouldn't be against an option to silence them. Which can already by accomplished by LOGGING, can't it?

Vlastik

Dne neděle 26. března 2017 11:14:23 UTC+2 Melvyn Sopacua napsal(a):

On Thursday 16 March 2017 12:03:07 Tim Graham wrote:

> Ticket #18773 [0] added logging of undefined template variables in

> Django 1.9 [1], however, I've seen several reports of users finding

> this logging more confusing than helpful.

 

With channels hitting 2.0 and the already large stack of moving parts surrounding Django you need some basic system administration skills and programming experience to work with the system. And there are quite a few examples to link to from the user's list that deal with those moving parts rather then Django itself. It is not an application that you download, install and run.

 

An introduction "What you need to know before starting Django" would help a lot in this respect and explaining the noisiness of some logging belongs in there.

 

Because it *is* useful if you defined that variable to True in your settings, and it's working in all projects but this one. It could be there's an extra piece of context middleware that uses the same name and deletes the variable from the context. It could be there's a Mixin missing in the view hierarchy. Or a typo you don't notice anymore after plowing through 20+ included template bits.

 

Noisy logging is exactly what you want when debugging. It should log things that may be working as designed, especially things that are ambiguous (like undefined and false).

 

Another thing is that logging is the ugly duckling of Django. It's not mentioned much if at all in the tutorial. It is not mentioned at all in "How to write reusable apps" and it shows in the eco system. It's like finding a diamond when an app actually has logging implemented.

 

But it also means that novice users touching the LOGGING configuration are exceptions and I don't think Django should cater to the exceptions.

 

--

Melvyn Sopacua

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-develop...@googlegroups.com.
To post to this group, send email to [hidden email].
Visit this group at <a href="https://groups.google.com/group/django-developers" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/group/django-developers&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/group/django-developers&#39;;return true;">https://groups.google.com/group/django-developers.
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com?utm_medium=email&amp;utm_source=footer" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com.

For more options, visit <a href="https://groups.google.com/d/optout" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/f7636989-c87e-4e63-955c-94fb3a14bc78%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: To keep or not to keep: logging of undefined template variables

Collin Anderson-2
I used to do that too (string_if_invalid that raises an exception). What was nice about this, is you could explicitly wrap the variable in an if tag to silence the error if you were ok with it. (I'm not sure if this behavior is still true.)

{% if var_that_sometimes_exists %}{{ var_that_sometimes_exists }}{% endif %}

On Thu, Aug 24, 2017 at 11:59 AM, Sjoerd Job Postmus <[hidden email]> wrote:
As an anecdotal data-point: at the company I'm working at, we are running Django with a custom object as "string_if_invalid" that raises an exception on string-interpolation. This way missing template variables *do* get converted to an exception. I myself am very happy with this solution, as it forces us to make sure templates and views match up correctliy. The essence is that it's better to get an exception, than incorrect output (Yes, you should test beforehand, but sometimes there's a combinatorial explosion that makes that hard).


On Thursday, August 24, 2017 at 5:21:38 PM UTC+2, Tim Graham wrote:
We received a report that shows the large number of undefined variable warnings when rendering an admin changelist page [0].

I'm still not sure what the solution should be, but I created #28526 [1] to track this problem: finding a remedy to the problem of verbose, often unhelpful logging of undefined variables.

I don't think "the end goal of errors raising when using undefined variables" is feasible. My sense is that relying on the behavior of undefined variables is too entrenched in the Django template language to change it at this point. (If someone wanted to try to fix all the warnings in the admin templates, that might provide a useful data point). See the "Template handling of undefined variables" thread [2] for a longer discussion.

[0] https://code.djangoproject.com/ticket/28516
[1] https://code.djangoproject.com/ticket/28526
[2] https://groups.google.com/d/topic/django-developers/LT5ESP0w0gQ/discussion

On Tuesday, June 20, 2017 at 4:12:52 AM UTC-4, Anthony King wrote:
-1 for removing logs. Like Vlastimil, it's helped me spot a couple of stray bugs.

What I'd actually like to see is this becoming stricter, with the end goal of errors raising when using undefined variables.

For the verbosity, perhaps there's a middle ground? only log once per variable access per template context, and provide a formatter that will clean up the output?

I believe in debug mode, you have access to line numbers and character positions, so the final output could look something like this:

``
some_app/home.html:32:24: Undefined variable: missing_variable
``

I'm unsure how much effort this would take, but it would definitely make the logging a lot more user + developer friendly.

On 20 June 2017 at 08:48, Vlastimil Zíma <[hidden email]> wrote:
-1 to the removal. I was annoyed by the logging at first, but then I started to clean individual logs. Half way through, I found several usages of long removed variables, one unused template (as a side effect) and I updated several views to always provide defined context variables.

All in all, I consider the warnings very useful for a cleaning, though I wouldn't be against an option to silence them. Which can already by accomplished by LOGGING, can't it?

Vlastik

Dne neděle 26. března 2017 11:14:23 UTC+2 Melvyn Sopacua napsal(a):

On Thursday 16 March 2017 12:03:07 Tim Graham wrote:

> Ticket #18773 [0] added logging of undefined template variables in

> Django 1.9 [1], however, I've seen several reports of users finding

> this logging more confusing than helpful.

 

With channels hitting 2.0 and the already large stack of moving parts surrounding Django you need some basic system administration skills and programming experience to work with the system. And there are quite a few examples to link to from the user's list that deal with those moving parts rather then Django itself. It is not an application that you download, install and run.

 

An introduction "What you need to know before starting Django" would help a lot in this respect and explaining the noisiness of some logging belongs in there.

 

Because it *is* useful if you defined that variable to True in your settings, and it's working in all projects but this one. It could be there's an extra piece of context middleware that uses the same name and deletes the variable from the context. It could be there's a Mixin missing in the view hierarchy. Or a typo you don't notice anymore after plowing through 20+ included template bits.

 

Noisy logging is exactly what you want when debugging. It should log things that may be working as designed, especially things that are ambiguous (like undefined and false).

 

Another thing is that logging is the ugly duckling of Django. It's not mentioned much if at all in the tutorial. It is not mentioned at all in "How to write reusable apps" and it shows in the eco system. It's like finding a diamond when an app actually has logging implemented.

 

But it also means that novice users touching the LOGGING configuration are exceptions and I don't think Django should cater to the exceptions.

 

--

Melvyn Sopacua

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-develop...@googlegroups.com.
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/f7636989-c87e-4e63-955c-94fb3a14bc78%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAFO84S4bGeL0ViO3W%3DxWM6RDDX%3DLJ3K79JbO_e-ovmQGrckBHw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: To keep or not to keep: logging of undefined template variables

Vlastimil Zíma-2
In reply to this post by Tim Graham-2
Apparently there is number of errors in admin templates. I suggest to fix the templates. I my experience, the most cases are missing if statements or missing context variables. These can be fixed very easily and produce cleaner templates. I consider this much better solution than just ignoring error messages.

As Anthony suggested, the main problem is more often the fuzziness of the messages, which do not often properly state template, line or expression which is incorrect. This makes it difficult to resolve them in some cases.

Vlastik

Dne čtvrtek 24. srpna 2017 17:21:38 UTC+2 Tim Graham napsal(a):
We received a report that shows the large number of undefined variable warnings when rendering an admin changelist page [0].

I'm still not sure what the solution should be, but I created #28526 [1] to track this problem: finding a remedy to the problem of verbose, often unhelpful logging of undefined variables.

I don't think "the end goal of errors raising when using undefined variables" is feasible. My sense is that relying on the behavior of undefined variables is too entrenched in the Django template language to change it at this point. (If someone wanted to try to fix all the warnings in the admin templates, that might provide a useful data point). See the "Template handling of undefined variables" thread [2] for a longer discussion.

[0] <a href="https://code.djangoproject.com/ticket/28516" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fticket%2F28516\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGxZ2PPLEWjrYwxb9EhdsdfFKPPag&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fticket%2F28516\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGxZ2PPLEWjrYwxb9EhdsdfFKPPag&#39;;return true;">https://code.djangoproject.com/ticket/28516
[1] <a href="https://code.djangoproject.com/ticket/28526" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fticket%2F28526\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGqa1uVIF9pV86Qk3Bw0PJDN9Nq6w&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fticket%2F28526\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGqa1uVIF9pV86Qk3Bw0PJDN9Nq6w&#39;;return true;">https://code.djangoproject.com/ticket/28526
[2] <a href="https://groups.google.com/d/topic/django-developers/LT5ESP0w0gQ/discussion" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://groups.google.com/d/topic/django-developers/LT5ESP0w0gQ/discussion&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/topic/django-developers/LT5ESP0w0gQ/discussion&#39;;return true;">https://groups.google.com/d/topic/django-developers/LT5ESP0w0gQ/discussion

On Tuesday, June 20, 2017 at 4:12:52 AM UTC-4, Anthony King wrote:
-1 for removing logs. Like Vlastimil, it's helped me spot a couple of stray bugs.

What I'd actually like to see is this becoming stricter, with the end goal of errors raising when using undefined variables.

For the verbosity, perhaps there's a middle ground? only log once per variable access per template context, and provide a formatter that will clean up the output?

I believe in debug mode, you have access to line numbers and character positions, so the final output could look something like this:

``
some_app/home.html:32:24: Undefined variable: missing_variable
``

I'm unsure how much effort this would take, but it would definitely make the logging a lot more user + developer friendly.

On 20 June 2017 at 08:48, Vlastimil Zíma <[hidden email]> wrote:
-1 to the removal. I was annoyed by the logging at first, but then I started to clean individual logs. Half way through, I found several usages of long removed variables, one unused template (as a side effect) and I updated several views to always provide defined context variables.

All in all, I consider the warnings very useful for a cleaning, though I wouldn't be against an option to silence them. Which can already by accomplished by LOGGING, can't it?

Vlastik

Dne neděle 26. března 2017 11:14:23 UTC+2 Melvyn Sopacua napsal(a):

On Thursday 16 March 2017 12:03:07 Tim Graham wrote:

> Ticket #18773 [0] added logging of undefined template variables in

> Django 1.9 [1], however, I've seen several reports of users finding

> this logging more confusing than helpful.

 

With channels hitting 2.0 and the already large stack of moving parts surrounding Django you need some basic system administration skills and programming experience to work with the system. And there are quite a few examples to link to from the user's list that deal with those moving parts rather then Django itself. It is not an application that you download, install and run.

 

An introduction "What you need to know before starting Django" would help a lot in this respect and explaining the noisiness of some logging belongs in there.

 

Because it *is* useful if you defined that variable to True in your settings, and it's working in all projects but this one. It could be there's an extra piece of context middleware that uses the same name and deletes the variable from the context. It could be there's a Mixin missing in the view hierarchy. Or a typo you don't notice anymore after plowing through 20+ included template bits.

 

Noisy logging is exactly what you want when debugging. It should log things that may be working as designed, especially things that are ambiguous (like undefined and false).

 

Another thing is that logging is the ugly duckling of Django. It's not mentioned much if at all in the tutorial. It is not mentioned at all in "How to write reusable apps" and it shows in the eco system. It's like finding a diamond when an app actually has logging implemented.

 

But it also means that novice users touching the LOGGING configuration are exceptions and I don't think Django should cater to the exceptions.

 

--

Melvyn Sopacua

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-develop...@googlegroups.com.
To post to this group, send email to [hidden email].
Visit this group at <a href="https://groups.google.com/group/django-developers" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/group/django-developers&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/group/django-developers&#39;;return true;">https://groups.google.com/group/django-developers.
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com?utm_medium=email&amp;utm_source=footer" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com.

For more options, visit <a href="https://groups.google.com/d/optout" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/6ca64a2c-75d0-4a1e-a043-866b13b7f521%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: To keep or not to keep: logging of undefined template variables

Vlastimil Zíma-2
If anyone is interested, I've cleaned the errors in admin templates:

Ticket: https://code.djangoproject.com/ticket/28529
PR: https://github.com/django/django/pull/8973

The fixes are quite simple. The biggest problem is sometimes to find out, in which template the bug actually appears.

Vlastik

Dne pátek 25. srpna 2017 9:28:30 UTC+2 Vlastimil Zíma napsal(a):
Apparently there is number of errors in admin templates. I suggest to fix the templates. I my experience, the most cases are missing if statements or missing context variables. These can be fixed very easily and produce cleaner templates. I consider this much better solution than just ignoring error messages.

As Anthony suggested, the main problem is more often the fuzziness of the messages, which do not often properly state template, line or expression which is incorrect. This makes it difficult to resolve them in some cases.

Vlastik

Dne čtvrtek 24. srpna 2017 17:21:38 UTC+2 Tim Graham napsal(a):
We received a report that shows the large number of undefined variable warnings when rendering an admin changelist page [0].

I'm still not sure what the solution should be, but I created #28526 [1] to track this problem: finding a remedy to the problem of verbose, often unhelpful logging of undefined variables.

I don't think "the end goal of errors raising when using undefined variables" is feasible. My sense is that relying on the behavior of undefined variables is too entrenched in the Django template language to change it at this point. (If someone wanted to try to fix all the warnings in the admin templates, that might provide a useful data point). See the "Template handling of undefined variables" thread [2] for a longer discussion.

[0] <a href="https://code.djangoproject.com/ticket/28516" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fticket%2F28516\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGxZ2PPLEWjrYwxb9EhdsdfFKPPag&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fticket%2F28516\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGxZ2PPLEWjrYwxb9EhdsdfFKPPag&#39;;return true;">https://code.djangoproject.com/ticket/28516
[1] <a href="https://code.djangoproject.com/ticket/28526" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fticket%2F28526\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGqa1uVIF9pV86Qk3Bw0PJDN9Nq6w&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fticket%2F28526\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGqa1uVIF9pV86Qk3Bw0PJDN9Nq6w&#39;;return true;">https://code.djangoproject.com/ticket/28526
[2] <a href="https://groups.google.com/d/topic/django-developers/LT5ESP0w0gQ/discussion" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/d/topic/django-developers/LT5ESP0w0gQ/discussion&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/topic/django-developers/LT5ESP0w0gQ/discussion&#39;;return true;">https://groups.google.com/d/topic/django-developers/LT5ESP0w0gQ/discussion

On Tuesday, June 20, 2017 at 4:12:52 AM UTC-4, Anthony King wrote:
-1 for removing logs. Like Vlastimil, it's helped me spot a couple of stray bugs.

What I'd actually like to see is this becoming stricter, with the end goal of errors raising when using undefined variables.

For the verbosity, perhaps there's a middle ground? only log once per variable access per template context, and provide a formatter that will clean up the output?

I believe in debug mode, you have access to line numbers and character positions, so the final output could look something like this:

``
some_app/home.html:32:24: Undefined variable: missing_variable
``

I'm unsure how much effort this would take, but it would definitely make the logging a lot more user + developer friendly.

On 20 June 2017 at 08:48, Vlastimil Zíma <[hidden email]> wrote:
-1 to the removal. I was annoyed by the logging at first, but then I started to clean individual logs. Half way through, I found several usages of long removed variables, one unused template (as a side effect) and I updated several views to always provide defined context variables.

All in all, I consider the warnings very useful for a cleaning, though I wouldn't be against an option to silence them. Which can already by accomplished by LOGGING, can't it?

Vlastik

Dne neděle 26. března 2017 11:14:23 UTC+2 Melvyn Sopacua napsal(a):

On Thursday 16 March 2017 12:03:07 Tim Graham wrote:

> Ticket #18773 [0] added logging of undefined template variables in

> Django 1.9 [1], however, I've seen several reports of users finding

> this logging more confusing than helpful.

 

With channels hitting 2.0 and the already large stack of moving parts surrounding Django you need some basic system administration skills and programming experience to work with the system. And there are quite a few examples to link to from the user's list that deal with those moving parts rather then Django itself. It is not an application that you download, install and run.

 

An introduction "What you need to know before starting Django" would help a lot in this respect and explaining the noisiness of some logging belongs in there.

 

Because it *is* useful if you defined that variable to True in your settings, and it's working in all projects but this one. It could be there's an extra piece of context middleware that uses the same name and deletes the variable from the context. It could be there's a Mixin missing in the view hierarchy. Or a typo you don't notice anymore after plowing through 20+ included template bits.

 

Noisy logging is exactly what you want when debugging. It should log things that may be working as designed, especially things that are ambiguous (like undefined and false).

 

Another thing is that logging is the ugly duckling of Django. It's not mentioned much if at all in the tutorial. It is not mentioned at all in "How to write reusable apps" and it shows in the eco system. It's like finding a diamond when an app actually has logging implemented.

 

But it also means that novice users touching the LOGGING configuration are exceptions and I don't think Django should cater to the exceptions.

 

--

Melvyn Sopacua

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-develop...@googlegroups.com.
To post to this group, send email to [hidden email].
Visit this group at <a href="https://groups.google.com/group/django-developers" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/group/django-developers&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/group/django-developers&#39;;return true;">https://groups.google.com/group/django-developers.
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com?utm_medium=email&amp;utm_source=footer" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com/d/msgid/django-developers/80fafa13-ef3b-4b8c-9376-cc63b1776cb8%40googlegroups.com.

For more options, visit <a href="https://groups.google.com/d/optout" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/dd0665e4-b6af-416a-934a-2771abe8c900%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.