Numéroter les zones après tri, lire le journal par la fin et corriger l'aide -g
This commit is contained in:
@ -1129,10 +1129,20 @@ def rebuild_status():
|
||||
|
||||
|
||||
def _tail_log(n_lines):
|
||||
"""Dernières lignes du journal — lecture depuis la fin uniquement.
|
||||
|
||||
Le journal peut atteindre plusieurs Mo et /api/status est sondé toutes
|
||||
les ~2 s par l'interface : relire tout le fichier à chaque sondage
|
||||
coûte cher, surtout sur Raspberry Pi.
|
||||
"""
|
||||
try:
|
||||
lines = LOG_FILE.read_text(encoding="utf-8", errors="replace").splitlines()
|
||||
return lines[-n_lines:]
|
||||
except Exception:
|
||||
with open(LOG_FILE, "rb") as fh:
|
||||
fh.seek(0, os.SEEK_END)
|
||||
size = fh.tell()
|
||||
fh.seek(max(0, size - 64 * 1024))
|
||||
chunk = fh.read().decode("utf-8", errors="replace")
|
||||
return chunk.splitlines()[-n_lines:]
|
||||
except OSError:
|
||||
return []
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user