Weblate のデバッグ

バグは、アプリケーションのクラッシュまたはさまざまな誤動作として現れることがあります。このような問題に関する情報を収集し、課題解決ツール で報告してください。

デバッグ モード

デバッグ モードを有効にすると、Web ブラウザーに例外が表示されます。これは、Web 画面の問題をデバッグする場合に便利ですが、性能に影響を与え、個人データが漏れる可能性があるため、運用環境には適していません。

運用環境では、ADMINS を使用してエラー レポートを含むメールを受信するか、サード パーティのサービスを使用してエラー収集を設定します。

Weblate のログ

Weblate は、バックグラウンドで行われていることの詳細なログを生成できます。デフォルトの設定では syslog が使用され、ログは /var/log/messages または /var/log/syslog (syslog デーモンの設定によって異なる)のいずれかに出力されます。

Celery プロセス(参照: Celery を使用するバックグラウンド タスク)は、通常、独自のログも作成します。システム全体の設定の例では、ログは /var/log/celery/ 以下の複数のファイルに記録されます。

Docker コンテナは(Docker の世界では通常通り)その出力にログを記録するので、 docker-compose logs を使用してログを見ることができます。WEBLATE_LOGLEVEL を変更すると、より詳細なログを取得できます。

参考

設定例 は、LOGGING の設定を含んでいます。

バックグラウンド タスクが処理されない

多くのことが Celery ワーカーによりバックグラウンドで行われています。メール送信やコンポーネントの削除などが機能しない場合、原因は Celery ワーカーによる可能性があります。

その場合の確認事項:

Weblate からメールが届かない

送信メールが正常に動作しているかどうかを確認するには、sendtestemail 管理コマンド(異なる環境で起動する方法については、管理コマンドの起動 を確認)を使用するか、ツール タブから 管理画面 を使用します。

これはメールを直接送信するため、SMTP 設定が正常かどうかを確認できます(参照: メール送信の設定)。ただし、Weblate からのメールの多くはバックグラウンドで送信されるため、Celery に問題がある場合があります。Celery のデバッグについては、バックグラウンド タスクが処理されない を確認してください。

アプリケーション クラッシュの解析

アプリケーションがクラッシュした場合は、クラッシュの情報をできるだけ多く収集することが必要です。収集は、このような情報を自動的に収集できるサードパーティのサービスを使用して行います。この設定方法については、エラーレポートの収集とパフォーマンスの監視 を確認してください。

サイレント障害

多くのタスクが、Celery にオフロードされ、バックグラウンドで処理されます。エラーは、管理画面には表示されませんが、Celery のログには残ります。エラーレポートの収集とパフォーマンスの監視 を設定すると、このようなエラーを簡単に見つけることができます。

性能の問題

何らかの状況で Weblate の性能が低下した場合は、問題に関連するログと、コードを改善すべき可能性がある箇所を特定するのに必要な情報を収集してください。

何の兆候もなくリクエストに時間がかかりすぎる場合は、エラーレポートの収集とパフォーマンスの監視 とともに dogslow をインストールし、エラー収集ツールで特定した詳細なトレースバックを取得してください。

性能の低下がデータベースに関連している場合、DEBUG を有効にし、すべてのデータベース問合せのログを残せます。

LOGGING["loggers"]["django.db.backends"] = {"handlers": ["console"], "level": "DEBUG"}