feat: Add option to include template debug noise in logs view
Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
@@ -251,6 +251,7 @@ def logs_view(request):
|
||||
level_filter = request.GET.get("level", "").strip().upper()
|
||||
show_all = request.GET.get("all") == "1"
|
||||
raw_mode = request.GET.get("raw") == "1"
|
||||
include_noise = request.GET.get("include_noise") == "1"
|
||||
|
||||
if raw_mode:
|
||||
if not os.path.exists(log_file_path):
|
||||
@@ -352,7 +353,22 @@ def logs_view(request):
|
||||
|
||||
filtered_entries = []
|
||||
search_lower = search_query.lower()
|
||||
noise_suppressed = 0
|
||||
for entry in parsed_entries:
|
||||
# Django template debug logs can be very noisy and usually do not indicate
|
||||
# fatal issues. Hide them by default, with an explicit opt-in toggle.
|
||||
is_template_debug_noise = (
|
||||
entry.get("level") == "DEBUG"
|
||||
and entry.get("logger") == "django.template"
|
||||
and (
|
||||
"Exception while resolving variable" in entry.get("message", "")
|
||||
or any("VariableDoesNotExist" in d for d in entry.get("details", []))
|
||||
)
|
||||
)
|
||||
if is_template_debug_noise and not include_noise:
|
||||
noise_suppressed += 1
|
||||
continue
|
||||
|
||||
if level_filter and entry["level"] != level_filter:
|
||||
continue
|
||||
|
||||
@@ -387,6 +403,8 @@ def logs_view(request):
|
||||
"show_all": show_all,
|
||||
"limit": limit,
|
||||
"raw_url": f"{reverse('logs_view')}?raw=1",
|
||||
"include_noise": include_noise,
|
||||
"noise_suppressed": noise_suppressed,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@@ -70,6 +70,14 @@
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-12 col-md-2 d-flex align-items-center">
|
||||
<div class="form-check mt-1">
|
||||
<input class="form-check-input" type="checkbox" value="1" id="include_noise" name="include_noise" {% if include_noise %}checked{% endif %}>
|
||||
<label class="form-check-label small" for="include_noise">
|
||||
Include template debug noise
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-auto">
|
||||
<button type="submit" class="btn btn-primary">Search</button>
|
||||
{% if search_query or level_filter %}
|
||||
@@ -78,9 +86,9 @@
|
||||
</div>
|
||||
<div class="col-12 col-md-auto">
|
||||
{% if show_all %}
|
||||
<a href="{% url 'logs_view' %}?q={{ search_query }}&level={{ level_filter }}" class="btn btn-outline-secondary">Show recent only</a>
|
||||
<a href="{% url 'logs_view' %}?q={{ search_query|urlencode }}&level={{ level_filter|urlencode }}{% if include_noise %}&include_noise=1{% endif %}" class="btn btn-outline-secondary">Show recent only</a>
|
||||
{% else %}
|
||||
<a href="{% url 'logs_view' %}?q={{ search_query }}&level={{ level_filter }}&all=1" class="btn btn-outline-info">View all logs</a>
|
||||
<a href="{% url 'logs_view' %}?q={{ search_query|urlencode }}&level={{ level_filter|urlencode }}&all=1{% if include_noise %}&include_noise=1{% endif %}" class="btn btn-outline-info">View all logs</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-12 col-md-auto">
|
||||
@@ -137,12 +145,16 @@
|
||||
{% else %}
|
||||
Displaying most recent 500 entries (newest first).
|
||||
{% if total_entries > 500 %}
|
||||
<a href="{% url 'logs_view' %}?q={{ search_query }}&level={{ level_filter }}&all=1" class="alert-link">View all {{ total_entries }} entries</a>.
|
||||
<a href="{% url 'logs_view' %}?q={{ search_query|urlencode }}&level={{ level_filter|urlencode }}&all=1{% if include_noise %}&include_noise=1{% endif %}" class="alert-link">View all {{ total_entries }} entries</a>.
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if search_query %}
|
||||
Search found {{ entries|length }} matching entr{{ entries|length|pluralize:"y,ies" }}.
|
||||
{% endif %}
|
||||
{% if noise_suppressed and not include_noise %}
|
||||
Hidden {{ noise_suppressed }} noisy template debug entr{{ noise_suppressed|pluralize:"y,ies" }}.
|
||||
<a href="{% url 'logs_view' %}?q={{ search_query|urlencode }}&level={{ level_filter|urlencode }}{% if show_all %}&all=1{% endif %}&include_noise=1" class="alert-link">Show them</a>.
|
||||
{% endif %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="alert alert-info">
|
||||
|
||||
Reference in New Issue
Block a user