Depanarea Weblate¶
Defecțiunile se pot prezenta sub forma unor blocări ale aplicației sau a unor comportamente greșite. Sunteți bineveniți să colectați informații despre orice astfel de problemă și să o trimiteți la issue tracker.
Modul de depanare¶
Activarea modului de depanare va face ca excepțiile să fie afișate în browserul web. Acest lucru este util pentru depanarea problemelor din interfața web, dar nu este potrivit pentru un mediu de producție, deoarece are consecințe asupra performanței și poate duce la scurgeri de date private.
Într-un mediu de producție, utilizați ADMINS
pentru a primi e-mailuri care conțin rapoarte de eroare sau configurați colectarea erorilor utilizând un serviciu terț.
Jurnalele Weblate¶
Weblate poate produce jurnale detaliate cu privire la ceea ce se întâmplă în fundal. În configurația implicită, utilizează syslog, ceea ce face ca jurnalul să apară fie în /var/log/messages
, fie la /var/log/syslog
(în funcție de configurația daemonului syslog).
Procesul Celery (a se vedea Sarcini de fundal folosind Celery) produce, de obicei, și propriile jurnale. Exemplul de configurare la nivel de sistem înregistrează jurnalele în mai multe fișiere în /var/log/celery/
.
Docker containers log to their output (as per usual in the Docker world), so
you can look at the logs using docker compose logs
. You can get more
detailed logs by changing WEBLATE_LOGLEVEL
.
Vezi și
Exemplu de configurare conține configurația LOGGING
.
Nu se procesează sarcinile de fundal¶
O mulțime de lucruri sunt făcute în fundal de către lucrătorii de la Celery. Dacă lucruri precum trimiterea de e-mailuri sau eliminarea componentelor nu funcționează, este posibil să existe o problemă conexă.
Lucruri de verificat în acest caz:
Verificați dacă procesul Celery rulează, vezi Sarcini de fundal folosind Celery
Check the Celery queue status, either in Interfața de gestionare, or using
celery_queues
Uitați-vă în jurnalele Celery pentru erori (vezi Jurnalele Weblate)
Nu primiți e-mailuri de la Weblate¶
Puteți verifica dacă poșta electronică de ieșire funcționează corect utilizând comanda de gestionare sendtestemail
(consultați Invocarea comenzilor de gestionare pentru instrucțiuni despre cum să o apelați în diferite medii) sau utilizând Interfața de gestionare din fila Tools.
Acestea trimit direct e-mailuri, astfel încât se verifică dacă configurația SMTP este corectă (a se vedea Configurarea e-mailului de ieșire). Majoritatea e-mailurilor de la Weblate sunt însă trimise în fundal și este posibil să existe și unele probleme cu Celery; vă rugăm să consultați Nu se procesează sarcinile de fundal pentru depanarea acestora.
Analiza accidentărilor aplicațiilor¶
În cazul în care aplicația se blochează, este util să se colecteze cât mai multe informații cu privire la blocaj. Acest lucru poate fi realizat prin utilizarea unor servicii terțe care pot colecta astfel de informații în mod automat. Puteți găsi informații despre cum să configurați acest lucru în Collecting error reports and monitoring performance.
Eșecuri silențioase¶
O mulțime de sarcini sunt transferate către Celery pentru procesare în fundal. Eșecurile nu sunt afișate în interfața cu utilizatorul, dar apar în jurnalele Celery. Configurarea Collecting error reports and monitoring performance vă ajută să observați mai ușor astfel de eșecuri.
Probleme de performanță¶
În cazul în care Weblate are performanțe slabe în anumite scenarii, vă rugăm să colectați jurnalele relevante care arată problema, precum și orice lucru care ar putea ajuta la identificarea domeniilor în care codul ar putea fi îmbunătățit.
În cazul în care unele cereri durează prea mult timp fără nicio indicație, ați putea dori să instalați dogslow împreună cu Collecting error reports and monitoring performance și să obțineți trasee precise și detaliate în instrumentul de colectare a erorilor.
În cazul în care performanța lentă este legată de baza de date, puteți, de asemenea, să activați jurnalizarea tuturor interogărilor bazei de date utilizând următoarea configurație după activarea DEBUG
:
LOGGING["loggers"]["django.db.backends"] = {"handlers": ["console"], "level": "DEBUG"}