Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow passing in a custom logger #22587

Open
wants to merge 5 commits into
base: canary
Choose a base branch
from

Conversation

okmttdhr
Copy link
Contributor

@okmttdhr okmttdhr commented Feb 27, 2021

  • Allow passing in a custom logger for Next.js server logs

Next.js outputs its error logs which spans multiple lines, that's annoying when you're using Datadog or other services. This PR makes it possible to use logger of your choices.

Closes #4808 (Possibly)
Related #1852
Related #13594

@okmttdhr okmttdhr changed the title Add custom logger Allow passing in a custom logger Feb 27, 2021
@ijjk
Copy link
Member

ijjk commented Feb 27, 2021

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
buildDuration 12.9s 12.9s ⚠️ +63ms
nodeModulesSize 42.7 MB 42.7 MB ⚠️ +645 B
Page Load Tests Overall increase ✓
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
/ failed reqs 0 0
/ total time (seconds) 2.358 2.351 -0.01
/ avg req/sec 1060.32 1063.45 +3.13
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.661 1.598 -0.06
/error-in-render avg req/sec 1504.85 1564.49 +59.64
Client Bundles (main, webpack, commons)
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
677f882d2ed8..e7a0.js gzip 13.4 kB 13.4 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 6.65 kB 6.65 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 59.7 kB 59.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB
Overall change 31.3 kB 31.3 kB
Client Pages
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
_app-2a09aa2..4a98.js gzip 1.28 kB 1.28 kB
_error-8b758..aef6.js gzip 3.46 kB 3.46 kB
amp-e3e9bc99..932c.js gzip 536 B 536 B
hooks-5023ef..3670.js gzip 888 B 888 B
index-3a2b03..c677.js gzip 227 B 227 B
link-177412b..043e.js gzip 1.67 kB 1.67 kB
routerDirect..1a66.js gzip 303 B 303 B
withRouter-9..1b7d.js gzip 302 B 302 B
Overall change 8.66 kB 8.66 kB
Client Build Manifests
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
_buildManifest.js gzip 347 B 347 B
Overall change 347 B 347 B
Rendered Page Sizes
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
index.html gzip 613 B 613 B
link.html gzip 620 B 620 B
withRouter.html gzip 608 B 608 B
Overall change 1.84 kB 1.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
buildDuration 14.6s 15.1s ⚠️ +484ms
nodeModulesSize 42.7 MB 42.7 MB ⚠️ +645 B
Client Bundles (main, webpack, commons)
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
677f882d2ed8..e7a0.js gzip 13.4 kB 13.4 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 6.65 kB 6.65 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 59.7 kB 59.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB
Overall change 31.3 kB 31.3 kB
Client Pages
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
_app-2a09aa2..4a98.js gzip 1.28 kB 1.28 kB
_error-8b758..aef6.js gzip 3.46 kB 3.46 kB
amp-e3e9bc99..932c.js gzip 536 B 536 B
hooks-5023ef..3670.js gzip 888 B 888 B
index-3a2b03..c677.js gzip 227 B 227 B
link-177412b..043e.js gzip 1.67 kB 1.67 kB
routerDirect..1a66.js gzip 303 B 303 B
withRouter-9..1b7d.js gzip 302 B 302 B
Overall change 8.66 kB 8.66 kB
Client Build Manifests
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
_buildManifest.js gzip 347 B 347 B
Overall change 347 B 347 B
Serverless bundles
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
_error.js 1.01 MB 1.01 MB
404.html 2.67 kB 2.67 kB
500.html 2.65 kB 2.65 kB
amp.amp.html 10.4 kB 10.4 kB
amp.html 1.86 kB 1.86 kB
hooks.html 1.92 kB 1.92 kB
index.js 1.01 MB 1.01 MB
link.js 1.06 MB 1.06 MB
routerDirect.js 1.06 MB 1.06 MB
withRouter.js 1.06 MB 1.06 MB
Overall change 5.21 MB 5.21 MB

Webpack 5 Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
buildDuration 14.7s 14.7s ⚠️ +14ms
nodeModulesSize 42.7 MB 42.7 MB ⚠️ +645 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
/ failed reqs 0 0
/ total time (seconds) 2.26 2.352 ⚠️ +0.09
/ avg req/sec 1106.23 1062.87 ⚠️ -43.36
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.56 1.66 ⚠️ +0.1
/error-in-render avg req/sec 1602.11 1505.99 ⚠️ -96.12
Client Bundles (main, webpack, commons)
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
597-74632e79..1d47.js gzip 13.3 kB 13.3 kB
framework.HASH.js gzip 39.3 kB 39.3 kB
main-HASH.js gzip 6.59 kB 6.59 kB
webpack-HASH.js gzip 954 B 954 B
Overall change 60.1 kB 60.1 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB
Overall change 31.1 kB 31.1 kB
Client Pages
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
_app-aedc815..1421.js gzip 1.26 kB 1.26 kB
_error-71ec2..1a96.js gzip 3.38 kB 3.38 kB
amp-33a09cb0..6745.js gzip 536 B 536 B
hooks-4e968a..f870.js gzip 902 B 902 B
index-5c6845..f75c.js gzip 230 B 230 B
link-99f0c6c..b84a.js gzip 1.65 kB 1.65 kB
routerDirect..bb56.js gzip 306 B 306 B
withRouter-7..2133.js gzip 302 B 302 B
Overall change 8.57 kB 8.57 kB
Client Build Manifests
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
_buildManifest.js gzip 326 B 326 B
Overall change 326 B 326 B
Rendered Page Sizes
vercel/next.js canary okmttdhr/next.js feature/custom-logger Change
index.html gzip 586 B 586 B
link.html gzip 593 B 593 B
withRouter.html gzip 581 B 581 B
Overall change 1.76 kB 1.76 kB

Diffs

Diff for index.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/",
         "query": {},
-        "buildId": "xPN0ejNCYGCqikmTTuhgs",
+        "buildId": "2C2m51gGaSKUgW7cVNpFi",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/xPN0ejNCYGCqikmTTuhgs/_buildManifest.js"
+      src="/_next/static/2C2m51gGaSKUgW7cVNpFi/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/xPN0ejNCYGCqikmTTuhgs/_ssgManifest.js"
+      src="/_next/static/2C2m51gGaSKUgW7cVNpFi/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for link.html
@@ -48,7 +48,7 @@
         "props": { "pageProps": {} },
         "page": "/link",
         "query": {},
-        "buildId": "xPN0ejNCYGCqikmTTuhgs",
+        "buildId": "2C2m51gGaSKUgW7cVNpFi",
         "isFallback": false,
         "gip": true
       }
@@ -82,11 +82,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/xPN0ejNCYGCqikmTTuhgs/_buildManifest.js"
+      src="/_next/static/2C2m51gGaSKUgW7cVNpFi/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/xPN0ejNCYGCqikmTTuhgs/_ssgManifest.js"
+      src="/_next/static/2C2m51gGaSKUgW7cVNpFi/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for withRouter.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/withRouter",
         "query": {},
-        "buildId": "xPN0ejNCYGCqikmTTuhgs",
+        "buildId": "2C2m51gGaSKUgW7cVNpFi",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/xPN0ejNCYGCqikmTTuhgs/_buildManifest.js"
+      src="/_next/static/2C2m51gGaSKUgW7cVNpFi/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/xPN0ejNCYGCqikmTTuhgs/_ssgManifest.js"
+      src="/_next/static/2C2m51gGaSKUgW7cVNpFi/_ssgManifest.js"
       async=""
     ></script>
   </body>
Commit: cc7e3cd

@okmttdhr okmttdhr marked this pull request as ready for review February 27, 2021 13:40
@okmttdhr
Copy link
Contributor Author

okmttdhr commented Mar 2, 2021

@Timer @timneutkens
Hi, could you take a look at this PR?
Please let me know alternatives if this is not appropriate 🙏
(maybe this one? #1852 (comment) )

@dkleber89
Copy link

Need also this feature ... Would be happy when this get in the project

@okmttdhr okmttdhr requested a review from shuding as a code owner May 12, 2021 10:04
@kamranayub
Copy link

It sounds like this won't be merged due to the effort to move to OpenTelemetry.

For now we are patching this in by force but one thing we were looking for was to pass RequestContext and/or res to logError because we tie logs to the request (if possible) for correlation.

It's unfortunate because this [seems like] a pretty simple change, I could even help contribute, but it sounds like it wouldn't be accepted. 💭

@ijjk ijjk requested a review from feedthejim as a code owner March 2, 2023 23:39
@andrew-demb
Copy link

andrew-demb commented Mar 12, 2024

@kamranayub can you explain more about the details - which part of OpenTelemetry would be affected? Is there any created issue in GitHub NextJS or OpenTelemetry about the required refactoring to unlock improvements for injecting the logger?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Feature request: make logging possible on ejected custom server
5 participants