FastAPI 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 the standard library logger.
Log a caught exception, or let the framework record an unhandled one.
Uvicorn's error log goes through the same formatter as this form. Uvicorn's access logger is off, which is the package default, because Cloud's proxy already records requests. The button still calls uvicorn.access the same way Uvicorn writes a request line.
Cloud’s proxy writes access logs for each request. Those are not in this pane.
stdout, stderr, and the Cloud socket. Each row is one line, without its trailing newline, and the same bytes were written to that destination.
{"message":"Started server process [25]","context":{},"level":200,"level_name":"INFO","channel":"production","datetime":"2026-10-15T02:27:50.686733+00:00","extra":{"logger":"uvicorn.error"}}{"message":"Waiting for application startup.","context":{},"level":200,"level_name":"INFO","channel":"production","datetime":"2026-10-15T02:27:50.687320+00:00","extra":{"logger":"uvicorn.error"}}{"message":"Application startup complete.","context":{},"level":200,"level_name":"INFO","channel":"production","datetime":"2026-10-15T02:27:50.688183+00:00","extra":{"logger":"uvicorn.error"}}{"message":"Uvicorn running on http://:3000 (Press CTRL+C to quit)","context":{},"level":200,"level_name":"INFO","channel":"production","datetime":"2026-10-15T02:27:50.691566+00:00","extra":{"logger":"uvicorn.error"}}