Runtime Logs
Learn how to search, inspect, and share your runtime logs with the Logs tab.Runtime Logs are available on all plans
Those with the owner, member, developer role can access this feature
The Logs tab allows you to view, search, inspect, and share your runtime logs without any third-party integration. You can also filter and group your runtime logs based on the relevant fields.
You can only view runtime logs from the Logs tab. Build logs can be accessed from the production deployment tile.
Runtime logs include all logs generated by Serverless and Edge Function invocations in both preview and production deployments. These log results provide information about the output for your functions as well as the console.log
output.
With runtime logs:
- Logs are shown in realtime
- Each action of writing to standard output, such as using
console.log
, results in a separate log entry - Each of those logs are 4 KB per line
You can view the following log types in the Logs tab:
Log Type | Available in Runtime Logs |
---|---|
Serverless Function Invocation | Yes |
Edge Function Invocation | Yes |
Edge Middleware Invocation | Yes |
Static Request | No, available through Log Drains |
To view runtime logs:
- From the dashboard, select the project that you wish to see the logs for
- Select the Logs tab from your project overview
- From here you can view, filter, and search through the runtime logs. Each log row shares basic info about the request, like execution, domain name, HTTP status, function type, and RequestId.
You can use the following filters from the left sidebar to get a refined search experience.
You can filter runtime logs based on a specific timeline. It can vary from the past hour, last 3 days, or a custom timespan depending on your account type. You can use the Live mode option to follow the logs in real-time.
You can filter runtime logs by three kinds of levels: Info, Warning, and Error. Streaming Functions will always preserve the original intent:
Source | Streaming Functions | Non-streaming Functions |
---|---|---|
stdout (e.g. console.log ) | info | info |
stderr (e.g. console.error ) | error | error |
console.warn | warning | error |
Additionally:
- Requests with a status code of
4xx
are considered a Warning - Requests with a status code of
5xx
are considered Error - All other requests are considered Info
These levels are highlighted with different colors for example, yellow for warnings and red for errors. This color coding is beneficial with debugging; you can identify the failed requests and the reason behind the failure.
You can filter and analyze logs for one or more functions defined in your project. The log output is generated for the Serverless Functions, Edge Functions, and Edge Middleware.
You can view logs for one or more domains and subdomains attached to your team’s project. Alternatively, you can use the Search hosts... field to navigate to the desired host.
Like host and functions, you can filter your logs based on deployments URLs.
Using the type filter, you can search for four logs types generated as a result of:
Type | Description |
---|---|
Serverless Functions | Logs generated from your Serverless Functions invocations. Log details include additional runtime Request Id details and other basic info |
Edge Middleware | Logs generated as a result of your Edge Middleware invocations |
Edge Functions | Logs requests generated from your Edge Functions. Log info includes time, domain, and the request method |
Request | Logs generated from either ISR or external redirections |
You can filter your logs based on the request method used by a function such as GET
or POST
.
You can filter your logs based on the request path used by a function such as /api/my-function
.
You can filter your logs based on the cache behavior such as HIT
or MISS
.
Log Presets allow you to save your selected filters for later use. You can save presets to either My Project Presets (related to your personal account) or Team Project Presets. Personal presets can only be viewed and edited by the user who created them.
Presets are tied to specific projects. If you switch to another project, you will not see the saved presets.
To save a preset, make a change to the filters in the left sidebar and select the Save button. You can then choose the scoping group to save the preset to, either Personal or Team.
You can use the main search field to filter logs by their messages. In the current search state, filtered log results are sorted chronologically, with the most recent first. Filtered values can also be searched from the main search bar.
Value | Description |
---|---|
Function | The function name |
Level | The level type. Can be Info, Warning, or Error |
Type | Can be Request, Serverless Function, Edge Middleware, and Edge Function |
Host | Name of the domain or subdomain for which the log was generated |
Deployment | The name of your deployment |
Method | The request method used. For example GET , POST etc. |
Cache | Cache status with the values HIT , MISS , STALE , BYPASS , PRERENDER or REVALIDATED |
Status | HTTP status code for the log message |
RequestID | Unique identifier of request. This is visible on a 404 page, for example. |
This free text search feature is limited to the
message
field. Other fields can be filtered using the
left sidebar or the filters in the search bar.
You can view details for each generated runtime log to analyze and improve your debugging experience. When you click a log from the list, the following details appear in the right sidebar:
Info | Description |
---|---|
Log Name | Title of the log generated |
Time | Timestamp at which the log was recorded in UTC |
Status Code | HTTP status code for the log message |
Host | Name of the domain or subdomain for which the log was generated |
Request Id | Unique identifier of request created only for runtime logs |
Request User Agent | Name of the browser from which the request originated |
Level | The level type for example, Info, Warning, or Error |
Cache | Cache status with the values HIT , MISS , STALE , BYPASS , PRERENDER or REVALIDATED |
Type | Can be Request, Serverless Function, Edge Middleware, and Edge Function |
Function | The function name |
Location | The geographical region for Serverless and Edge Functions access |
Runtime | Name of the JavaScript runtime environment for Node.js (info only applies to Serverless Function type) |
Duration/Limit | Time duration for the log record result (info only applies to Serverless Function type) |
Memory used/Limit | The size of memory that was consumed by the function (info only applies to Serverless Function type) |
Log Message | A detailed log message with additional details for RequestId , Billed Duration , Max Memory Used , etc. Log messages that push the log over 4 KB can be truncated to only show tail logs |
Towards the end of the log results window is a button called Show New Logs. By default, it is set to display log results for the past 30 minutes.
Click this button, and it loads new log rows. The latest entries are added based on the selected filters.
You can share a log entry with other team members to view the particular log and context you are looking at. Click on the log you want to share, copy the current URL of your browser, and send it to team members through the medium of your choice.
Logs are streamed, and there is no limit on how many times you can output log
data for each function invocation. Each log
output can be up to 4 KB. Logs that exceed this will be truncated. If you exceed the log entry limits, you can only query the most recent logs.
Runtime logs are stored with the following observability limits:
Plan | Retention time |
---|---|
Hobby | 1 hour of logs |
Pro | 1 day of logs |
Enterprise | 3 days of logs |
The above limits are applied immediately when upgrading plans. For example, if you upgrade from Hobby to Pro, you will have access to the Pro plan limits, and access historical logs for up to 1 day.
Was this helpful?