GoogleCloudPlatform / GoogleCloudPlatform/functions-framework-python

Looking for support: Setup logging for async function with http.aio

Đang mở
#398 3 bình luận 1 reaction 0 người được giao Xem trên GitHub
documentation P2
Ngôn ngữ chính
Python
Star
968
Fork
128
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

Hello.
My goal is to see the **logs of an async CloudRun function in the CloudRun logs console**.
Does anybody has experience how to set this up correctly?

### Background
So far, for synchronous CloudRun function, I always used the google [python-logging](https://github.com/googleapis/python-logging) library, which is also recommended in the [Google Cloud documentation](https://cloud.google.com/logging/docs/setup/python) and is really simple.

However, the same is not working when I switch to the async function, there I never receive any logs. Here the sample code:
```python
from starlette.requests import Request
from starlette.responses import Response, JSONResponse
import aiohttp
import functions_framework.aio

import google.cloud.logging

# logging handler
client = google.cloud.logging.Client()
client.setup_logging(log_level=logging.DEBUG)

@functions_framework.aio.http
async def llm_emulator(request: Request):
logging.log(msg="hello world", level=logging.DEBUG) #-> this log never reaches CloudRun log console

```
I did some experimentation, my assumptions so far:
- async uses a different setup, not Flask+uvicorn but starlette under the hood. This might require some different initialisation of the logging
- maybe data is logged into a different thread/coroutine, I tried ```client.flash_handlers()``` but this has no effect.

Does anyone use logs in an async function and has experience, how to set it up correctly? (with or without any library)
I would be grateful for any hints or links to available documentation. Thanks a lot.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.