Add owner-only logging and Brickset API call tracking
LIM configured no logging at all, so the instruction fetcher had no trail to follow. Adds a rotating file handler on the root logger plus two owner-only admin pages. - Admin > Logs: filter by level, source and text; tracebacks kept with their error; auto-refresh, raw download, rotated-file browsing and rotate-now - Admin > Logs > Brickset API calls: every outbound call recorded with method, params, caller, duration, result count and error, plus daily quota accounting (only getSets counts) and a comparison against getKeyUsageStats - New owner concept (services/ownership.py): a single account, distinct from is_admin, since these pages expose other admins activity. Defaults to the first admin; flask owner show/set to change - Services now log through module loggers; retention setting and pruning for call records - New CLI: flask owner show/set, flask logs path/prune - New table brickset_api_calls, created automatically at boot; LOG_* env vars, /data/logs in Docker
This commit is contained in:
1 parent
89f65e2d74
commit
f7c20de5ac
27 files changed
+1914
-35
No files matched your search
@@ -15,6 +15,15 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
{% if current_user_is_owner %}
|
||||
<a href="{{ url_for('logs.index', source='app.services.instruction_fetcher') }}"
|
||||
class="btn btn-outline-dark">
|
||||
<i class="bi bi-journal-text"></i> Fetcher log
|
||||
</a>
|
||||
<a href="{{ url_for('logs.brickset') }}" class="btn btn-outline-dark">
|
||||
<i class="bi bi-cloud"></i> API calls
|
||||
</a>
|
||||
{% endif %}
|
||||
<a href="{{ url_for('admin.dashboard') }}" class="btn btn-outline-secondary">
|
||||
<i class="bi bi-arrow-left"></i> Back
|
||||
</a>
|
||||
|
||||
Reference in new issue
Block a user