googleapis / googleapis/google-cloud-python

Async Support for the threading Local Request store

オープン
#15,413 コメント 3 件 リアクション 3 件 担当者 1 名 @gkevinzheng が担当を希望しています GitHub で見る
api: logging priority: p3 type: question
主要言語
Python
スター
5.4k
フォーク
1.8k
平均マージ
3日 4時間
マージ済み PR(30日)
122

説明

At this moment the code in https://github.com/googleapis/python-logging/blob/main/google/cloud/logging_v2/handlers/middleware/request.py uses a threading.Local to store the latest request for usage with the structured Logging.

This global singleton approach does not seem safe for Async Code, where one would either rather use contextvars library, or even easier for the current codebase do something along this:

```python
try:
from asgiref.local import Local
except ImportError:
from threading import local as Local

_thread_locals = Local()
```

Sidenote: every code I see using this technique imports threading on top anyway, I am not sure if this has some deeper significance, so I omitted it.

I do think, that to support async correctly in newer Django Versions, this change should be made, or it might ending up sending wrong logs in certain situations.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。