Flask on Laravel Cloud
Write a line here, then compare this page’s output with Application logs.
Minimum level is Info. laravel-cloud-logging is on. JSON goes to the Cloud socket when that socket accepts it, and to stdout when it does not. Set LARAVEL_CLOUD_LOGGING=false and redeploy to use Flask’s own logging.
The form uses Flask’s app.logger, which is the standard library logger.
Cloud’s proxy writes access logs for each request. Those are not in this pane.
stdout, stderr, and the Cloud socket. Each line is the exact text written, and it is still written there.
| Time | Stream | Line |
|---|---|---|
| 01:00:02 | Cloud socket | {"message":"Starting gunicorn 26.2.0","context":{},"level":200,"level_name":"INFO","channel":"production","datetime":"2026-10-15T01:00:02.942916+00:00","extra":{"logger":"gunicorn.error"}} |
| 01:00:02 | Cloud socket | {"message":"Listening at: http://[::]:3000 (24)","context":{},"level":200,"level_name":"INFO","channel":"production","datetime":"2026-10-15T01:00:02.943699+00:00","extra":{"logger":"gunicorn.error"}} |
| 01:00:02 | Cloud socket | {"message":"Using worker: sync","context":{},"level":200,"level_name":"INFO","channel":"production","datetime":"2026-10-15T01:00:02.943801+00:00","extra":{"logger":"gunicorn.error"}} |
| 01:00:02 | Cloud socket | {"message":"Booting worker with pid: 30","context":{},"level":200,"level_name":"INFO","channel":"production","datetime":"2026-10-15T01:00:02.946077+00:00","extra":{"logger":"gunicorn.error"}} |
| 01:00:02 | Cloud socket | {"message":"Booting worker with pid: 32","context":{},"level":200,"level_name":"INFO","channel":"production","datetime":"2026-10-15T01:00:03.012463+00:00","extra":{"logger":"gunicorn.error"}} |
| 01:00:03 | Cloud socket | {"message":"Booting worker with pid: 34","context":{},"level":200,"level_name":"INFO","channel":"production","datetime":"2026-10-15T01:00:03.143729+00:00","extra":{"logger":"gunicorn.error"}} |
| 01:00:03 | Cloud socket | {"message":"Control socket listening at /var/www/.gunicorn/gunicorn.ctl","context":{},"level":200,"level_name":"INFO","channel":"production","datetime":"2026-10-15T01:00:03.403157+00:00","extra":{"logger":"gunicorn.error"}} |
| 01:00:16 | Cloud socket | {"message":"yoyo","context":{"cloud_request_id":"fe204a4b-4c76-44d0-8371-c1eb1e47dd94"},"level":200,"level_name":"INFO","channel":"production","datetime":"2026-10-15T01:00:16.886014+00:00","extra":{"logger":"app"}} |
| 01:01:42 | Cloud socket | {"message":"heyhey!","context":{"cloud_request_id":"559f1458-eb60-45e4-ae14-11bb9c6441dc"},"level":300,"level_name":"WARNING","channel":"production","datetime":"2026-10-15T01:01:42.022915+00:00","extra":{"logger":"app"}} |
| 01:03:10 | Cloud socket | {"message":"heyhey!","context":{"cloud_request_id":"0cee6f7d-61b7-440d-bdda-5620a009dcb5"},"level":300,"level_name":"WARNING","channel":"production","datetime":"2026-10-15T01:03:10.916453+00:00","extra":{"logger":"app"}} |
| 01:03:16 | Cloud socket | {"message":"heyhey!","context":{"cloud_request_id":"71dfe64a-c5bb-4b50-a42b-3acfc41a2da7"},"level":300,"level_name":"WARNING","channel":"production","datetime":"2026-10-15T01:03:16.402116+00:00","extra":{"logger":"app"}} |
| 01:03:38 | Cloud socket | {"message":"heyhey!","context":{"cloud_request_id":"ab862db0-04f0-415f-8543-7f343ff96c65"},"level":300,"level_name":"WARNING","channel":"production","datetime":"2026-10-15T01:03:38.740552+00:00","extra":{"logger":"app"}} |