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

Add support for logLevel plugin's option #494

Open
2 tasks done
Jacopo47 opened this issue Jan 3, 2025 · 0 comments
Open
2 tasks done

Add support for logLevel plugin's option #494

Jacopo47 opened this issue Jan 3, 2025 · 0 comments

Comments

@Jacopo47
Copy link

Jacopo47 commented Jan 3, 2025

Prerequisites

  • I have written a descriptive issue title
  • I have searched existing issues to ensure the feature has not already been requested

🚀 Feature Proposal

Looking at fastify's documentation I can found that plugins should accept and propagate (under the correct conditions) logLevel, for example by setting custom log level: https://fastify.dev/docs/latest/Reference/Routes/#custom-log-level

With fastify-static I'm not able to use this feature.
I don't know if I'm doing something wrong but looking to the source code I can actually see that logLevel in not propagate to routes created by this plugin.

Motivation

I'm in a scenario in which clients are calling an API that it's exposing a resource that drive browsers/clients to static contents that we are serving trough fastify-static plugin.

I would like to avoid logging every time that a client is asking for our "main" API other 5, 10, 100 log lines for the static contents that consequentially they will ask to our server.

That's why I would like to server static contents with an higher log level by default.
Then eventually if for debugging purpose we need those log it's just the matter of a configuration change.

Example

In order to reproduce it just populate logLevel into plugin's options:

(starting from: example/server.js)

'use strict'

const path = require('node:path')
const fastify = require('fastify')({ logger: { level: 'trace' } })

fastify
  .register(require('../'), {
    // An absolute path containing static files to serve.
    root: path.join(__dirname, '/public'),
    logLevel: 'warn'
  })
  .listen({ port: 3000 }, err => {
    if (err) throw err
  })

I would expect to not see any log line, instead this is the output:

{"level":30,"time":1735921958098,"pid":8840,"hostname":"ITCLPA70203","msg":"Server listening at http://127.0.0.1:3000"}
{"level":30,"time":1735921959308,"pid":8840,"hostname":"ITCLPA70203","reqId":"req-1","req":{"method":"GET","url":"/index.html","host":"localhost:3000","remoteAddress":"127.0.0.1","remotePort":38648},"msg":"incoming request"}
{"level":30,"time":1735921959314,"pid":8840,"hostname":"ITCLPA70203","reqId":"req-1","res":{"statusCode":304},"responseTime":5.742428999394178,"msg":"request completed"}
{"level":30,"time":1735921959341,"pid":8840,"hostname":"ITCLPA70203","reqId":"req-2","req":{"method":"GET","url":"/index.js","host":"localhost:3000","remoteAddress":"127.0.0.1","remotePort":38648},"msg":"incoming request"}
{"level":30,"time":1735921959343,"pid":8840,"hostname":"ITCLPA70203","reqId":"req-3","req":{"method":"GET","url":"/index.css","host":"localhost:3000","remoteAddress":"127.0.0.1","remotePort":38650},"msg":"incoming request"}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant