Діагностика у Weblate¶
Помилки можуть проявлятися як аварійні завершення роботи застосунку або помилкова поведінка. Ми будемо раді, якщо ви будете збирати будь-які дані про помилки та надасте їх у нашій системі стеження за помилками.
Режим зневадження¶
Вмикання діагностичного режиму призведе до показу винятків у браузері. Це корисно для діагностування проблем у вебінтерфейсі, але неприйнятно для промислового середовища, оскільки призводить до погіршення швидкодії та може призвести до витоку конфіденційних даних.
У промисловому середовищі скористайтеся ADMINS
для отримання повідомлень електронної пошти зі звітами щодо помилок або налаштовування збирання помилок за допомогою сторонньої служби.
Журнали Weblate¶
Weblate може створювати докладні журнали із записами того, що відбувається за лаштунками. За типових налаштувань програма використовує журнал системи, і те, з чого складається журнал записується або до /var/log/messages
, або до /var/log/syslog
(залежно від налаштувань фонової служби системного журналу у вашій системі).
Процес Celery (див. Фонові завдання з використанням Celery) зазвичай створює власний журнал. У прикладі загальносистемного налаштовування журнал записується до декількох файлів у каталозі /var/log/celery/
.
Контейнери Docker записують виведені дані (це звичайна практика у царині Docker), тож ви можете ознайомитися із журналом за допомогою команди docker-compose logs
. Отримати докладніший журнал можна встановленням відповідного значення змінної WEBLATE_LOGLEVEL
.
Дивись також
Зразок налаштувань містить налаштування LOGGING
.
Фонові завдання не обробляються¶
Значна частина даних обробляється у фоновому режимі обробниками Celery. Якщо не працює надсилання повідомлень електронної пошти або вилучення складників, можливо, проблема полягає саме у роботі обробників.
Речі, які слід перевірити у цьому випадку:
Перевірте, чи запущено процес Celery, див. Фонові завдання з використанням Celery
Перевірте стан черги Celery у Інтерфейс керування або за допомогою
celery_queues
Пошукайте повідомлення про помилки у журналі Celery (див. Журнали Weblate)
Не надходять повідомлення електронної пошти від Weblate¶
Ви можете перевірити, чи працює вихідна пошта належним чином, за допомогою команди керування sendtestemail
(див. Виклик команд керування, щоб ознайомитися із настановами щодо того, як викликати її у різних середовищах) або за допомогою інтерфейсу керування на вкладці Засоби.
Ці засоби надсилають повідомлення електронної пошти безпосередньо, тому це підтверджує правильність ваших налаштувань SMTP (див. Налаштовування вихідної електронної пошти). Втім, більша частина повідомлень від Weblate надсилається у фоновому режимі, тому проблеми можуть бути пов’язані з Celery. Опис діагностики Celery наведено у розділі Фонові завдання не обробляються.
Аналіз аварійних завершень застосунку¶
Якщо програма завершує роботу в аварійному режимі, корисно зібрати якомога більше відомостей щодо збою. Це можна зробити за допомогою сторонніх служб, які можуть збирати потрібні дані в автоматичному режимі. Знайти дані про налаштування системи можна у розділі Збирання звітів щодо помилок та стеження за швидкодією.
Помилки без повідомлень¶
Багато завдань покладаються на Celery для забезпечення фонової обробки. Дані аварійних завершень роботи таких завдань не буде показано в інтерфейсі користувача, а буде записано до журналу Celery. Налаштовування збирання помилок спростить діагностику таких помилок.
Проблеми із швидкодією¶
Якщо Weblate працює неналежним чином у певних випадках, будь ласка, зберіть відповідні дані журналів, які демонструють помилку, і усі дані, які можуть допомогти у визначенні того, як може бути удосконалено код, щоб запобігти неналежній поведінці.
Якщо певні запити виконуються надто довго без додаткової індикації, вам варто встановити dogslow і Збирання звітів щодо помилок та стеження за швидкодією і отримати точні та докладні трасування за допомогою засобу збирання даних помилок.
Якщо уповільнення роботи пов’язано із базою даних, ви можете увімкнути журналювання усіх запитів до бази даних за допомогою таких налаштувань після вмикання DEBUG
:
LOGGING["loggers"]["django.db.backends"] = {"handlers": ["console"], "level": "DEBUG"}