Skip to content

Conversation

@huozhi
Copy link
Member

@huozhi huozhi commented Jan 28, 2026

Change the dev next.js log file to a more structural format, each logging item is a JSON so that we can easily parse or let agents search through the file.

Before:

[00:00:12.345] Browser LOG     Test message
[00:00:13.456] Server  ERROR   Server error

After:

{"timestamp":"00:00:12.345","source":"Browser","level":"LOG","message":"Test message"}
{"timestamp":"00:00:13.456","source":"Server","level":"ERROR","message":"Server error"}

@cursor
Copy link

cursor bot commented Jan 28, 2026

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@huozhi huozhi changed the title Development log JSON Switch development log item format as JSON Jan 28, 2026
@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Jan 28, 2026

Tests Passed

@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Jan 28, 2026

Allow CI Workflow Run

  • approve CI run for commit: d6705ea

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

@huozhi huozhi added the CI approved Approve running CI for fork label Jan 28, 2026
cursoragent and others added 2 commits January 29, 2026 11:22
- Convert log entries from text format to JSON format
- Each log entry is now a JSON object with timestamp, source, level, and message
- Improves searching ability for agents parsing logs
- Update all related tests to expect JSON format

Co-authored-by: jiachi <jiachi@vercel.com>
Fix lint failure caused by auto-generated next-env.d.ts files in CI
@cursor cursor bot force-pushed the cursor/development-log-json-d724 branch from d6705ea to 2b57423 Compare January 29, 2026 11:22
@nextjs-bot
Copy link
Collaborator

Stats from current PR

✅ No significant changes detected

📊 All Metrics
📖 Metrics Glossary

Dev Server Metrics:

  • Listen = TCP port starts accepting connections
  • First Request = HTTP server returns successful response
  • Cold = Fresh build (no cache)
  • Warm = With cached build artifacts

Build Metrics:

  • Fresh = Clean build (no .next directory)
  • Cached = With existing .next directory

Change Thresholds:

  • Time: Changes < 50ms AND < 10%, OR < 2% are insignificant
  • Size: Changes < 1KB AND < 1% are insignificant
  • All other changes are flagged to catch regressions

⚡ Dev Server

Metric Canary PR Change Trend
Cold (Listen) 455ms 455ms ▁▁▁▁▁
Cold (Ready in log) 440ms 439ms ▇█▆▂▆
Cold (First Request) 1.146s 1.198s █▇█▃▇
Warm (Listen) 457ms 456ms ▁▁▁▁▁
Warm (Ready in log) 444ms 442ms ▂▁▁▅▁
Warm (First Request) 346ms 343ms █▄▁█▁
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 506ms 506ms ▁▁▁▁▁
Cold (Ready in log) 487ms 484ms ▁▁▃▃▃
Cold (First Request) 1.991s 2.001s ▁▁▂▂▂
Warm (Listen) 507ms 507ms ▁▁▁▁▁
Warm (Ready in log) 482ms 483ms ▁▁▃▃▃
Warm (First Request) 2.064s 2.063s ▁▁▂▂▂

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 4.388s 4.307s ▁▁▁▇▁
Cached Build 4.314s 4.334s ▁▁▁█▁
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 15.824s 15.804s ▁▁▁▁▁
Cached Build 15.838s 15.815s ▁▁▁▁▁
node_modules Size 462 MB 462 MB █████
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

Main Bundles: **432 kB** → **432 kB** ✓

81 files with content-based hashes (individual files not comparable between builds)

Server

Middleware
Canary PR Change
middleware-b..fest.js gzip 760 B 767 B
Total 760 B 767 B ⚠️ +7 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 451 B 449 B
Total 451 B 449 B ✅ -2 B

📦 Webpack

Client

Main Bundles
Canary PR Change
5528-HASH.js gzip 5.47 kB N/A -
6280-HASH.js gzip 52.7 kB N/A -
6335.HASH.js gzip 169 B N/A -
912-HASH.js gzip 4.53 kB N/A -
e8aec2e4-HASH.js gzip 62.3 kB N/A -
framework-HASH.js gzip 59.7 kB 59.7 kB
main-app-HASH.js gzip 256 B 254 B
main-HASH.js gzip 39 kB 39 kB
webpack-HASH.js gzip 1.68 kB 1.68 kB
262-HASH.js gzip N/A 4.52 kB -
2889.HASH.js gzip N/A 169 B -
5602-HASH.js gzip N/A 5.48 kB -
6948ada0-HASH.js gzip N/A 62.3 kB -
9544-HASH.js gzip N/A 53.2 kB -
Total 226 kB 226 kB ⚠️ +477 B
Polyfills
Canary PR Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Total 39.4 kB 39.4 kB
Pages
Canary PR Change
_app-HASH.js gzip 194 B 194 B
_error-HASH.js gzip 183 B 180 B 🟢 3 B (-2%)
css-HASH.js gzip 331 B 330 B
dynamic-HASH.js gzip 1.81 kB 1.81 kB
edge-ssr-HASH.js gzip 256 B 256 B
head-HASH.js gzip 351 B 352 B
hooks-HASH.js gzip 384 B 383 B
image-HASH.js gzip 580 B 581 B
index-HASH.js gzip 260 B 260 B
link-HASH.js gzip 2.49 kB 2.49 kB
routerDirect..HASH.js gzip 320 B 319 B
script-HASH.js gzip 386 B 386 B
withRouter-HASH.js gzip 315 B 315 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Total 7.97 kB 7.97 kB ✅ -1 B

Server

Edge SSR
Canary PR Change
edge-ssr.js gzip 126 kB 126 kB
page.js gzip 246 kB 247 kB
Total 373 kB 373 kB ⚠️ +269 B
Middleware
Canary PR Change
middleware-b..fest.js gzip 617 B 615 B
middleware-r..fest.js gzip 156 B 155 B
middleware.js gzip 33.1 kB 33 kB
edge-runtime..pack.js gzip 842 B 842 B
Total 34.7 kB 34.6 kB ✅ -88 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 732 B 735 B
Total 732 B 735 B ⚠️ +3 B
Build Cache
Canary PR Change
0.pack gzip 3.71 MB 3.73 MB 🔴 +16.2 kB (+0%)
index.pack gzip 101 kB 101 kB
index.pack.old gzip 102 kB 101 kB 🟢 1.05 kB (-1%)
Total 3.91 MB 3.93 MB ⚠️ +15.9 kB

🔄 Shared (bundler-independent)

Runtimes
Canary PR Change
app-page-exp...dev.js gzip 308 kB 308 kB
app-page-exp..prod.js gzip 164 kB 164 kB
app-page-tur...dev.js gzip 308 kB 308 kB
app-page-tur..prod.js gzip 164 kB 164 kB
app-page-tur...dev.js gzip 305 kB 305 kB
app-page-tur..prod.js gzip 162 kB 162 kB
app-page.run...dev.js gzip 305 kB 305 kB
app-page.run..prod.js gzip 162 kB 162 kB
app-route-ex...dev.js gzip 70.2 kB 70.2 kB
app-route-ex..prod.js gzip 48.8 kB 48.8 kB
app-route-tu...dev.js gzip 70.2 kB 70.2 kB
app-route-tu..prod.js gzip 48.8 kB 48.8 kB
app-route-tu...dev.js gzip 69.8 kB 69.8 kB
app-route-tu..prod.js gzip 48.6 kB 48.6 kB
app-route.ru...dev.js gzip 69.8 kB 69.8 kB
app-route.ru..prod.js gzip 48.6 kB 48.6 kB
dist_client_...dev.js gzip 324 B 324 B
dist_client_...dev.js gzip 326 B 326 B
dist_client_...dev.js gzip 318 B 318 B
dist_client_...dev.js gzip 317 B 317 B
pages-api-tu...dev.js gzip 43.1 kB 43.1 kB
pages-api-tu..prod.js gzip 32.8 kB 32.8 kB
pages-api.ru...dev.js gzip 43.1 kB 43.1 kB
pages-api.ru..prod.js gzip 32.8 kB 32.8 kB
pages-turbo....dev.js gzip 52.4 kB 52.4 kB
pages-turbo...prod.js gzip 39.3 kB 39.3 kB
pages.runtim...dev.js gzip 52.3 kB 52.3 kB
pages.runtim..prod.js gzip 39.3 kB 39.3 kB
server.runti..prod.js gzip 62.5 kB 62.5 kB
Total 2.75 MB 2.75 MB ⚠️ +4 B
📝 Changed Files (4 files)

Files with changes:

  • pages-api-tu..ntime.dev.js
  • pages-api.runtime.dev.js
  • pages-turbo...ntime.dev.js
  • pages.runtime.dev.js
View diffs
pages-api-tu..ntime.dev.js

Diff too large to display

pages-api.runtime.dev.js

Diff too large to display

pages-turbo...ntime.dev.js

Diff too large to display

pages.runtime.dev.js

Diff too large to display

@huozhi huozhi marked this pull request as ready for review January 29, 2026 12:18
@huozhi huozhi requested review from gaojude and timneutkens January 29, 2026 12:18
@huozhi huozhi merged commit 9b90d1b into canary Jan 29, 2026
160 checks passed
@huozhi huozhi deleted the cursor/development-log-json-d724 branch January 29, 2026 13:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI approved Approve running CI for fork created-by: Next.js team PRs by the Next.js team. tests type: next

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants