Fastify 是一个快速、低开销且可扩展的 Node.js Web 框架,它提供了一个插件体系,可以轻松地扩展功能。在实际项目中,日志是一个非常重要的部分,可以帮助我们快速定位问题并进行调试。
本文将介绍如何在 Fastify 中进行日志配置,包括如何设置日志级别、输出格式和日志文件等。同时,本文还将提供示例代码,以方便读者进行实践和学习。
设置日志级别
Fastify 支持多种日志级别,包括 fatal
、error
、warn
、info
、debug
和 trace
。默认情况下,Fastify 会输出 info
级别的日志,如果需要输出更详细的日志,可以通过设置 LOG_LEVEL
环境变量进行配置。
例如,如果需要输出 debug
级别的日志,可以在启动应用程序时设置 LOG_LEVEL=debug
环境变量:
LOG_LEVEL=debug node app.js
输出格式
Fastify 的默认日志输出格式为 JSON,可以通过设置 LOG_PRETTY_PRINT
环境变量将其改为可读性更高的格式。
例如,如果需要将日志输出格式改为可读性更高的格式,可以在启动应用程序时设置 LOG_PRETTY_PRINT=true
环境变量:
LOG_PRETTY_PRINT=true node app.js
输出到文件
Fastify 默认将日志输出到控制台,如果需要将日志输出到文件中,可以使用 pino
插件。pino
是一个快速的 Node.js 日志库,它支持多种日志输出方式,包括文件输出、控制台输出、TCP 输出等。
首先,需要安装 pino
插件:
npm install pino --save
然后,在 Fastify 实例化时,将 pino
插件作为插件参数传递进去:
const fastify = require('fastify')({ logger: require('pino')({ prettyPrint: true, level: process.env.LOG_LEVEL || 'info', redact: ['req.headers.authorization'] }) })
接着,在 listen
方法中,将日志输出到文件中:
fastify.listen(3000, '0.0.0.0', (err, address) => { if (err) { fastify.log.error(err) process.exit(1) } fastify.log.info(`server listening on ${address}`) })
以上代码将日志输出到当前目录下的 app.log
文件中。
示例代码
下面是一个完整的示例代码,演示了如何在 Fastify 中进行日志配置,并将日志输出到文件中:
-- -------------------- ---- ------- ----- ------- - -------------------- ------- ----------------- ------------ ----- ------ --------------------- -- ------- ------- ----------------------------- -- -- ---------------- ----- --------- ------ -- - ------------------------ -------- ------------ ------ ------- -- -- -------------------- ---------- ----- -------- -- - -- ----- - ---------------------- --------------- - ------------------------ --------- -- ------------ --
总结
本文介绍了如何在 Fastify 中进行日志配置,包括设置日志级别、输出格式和日志文件等。同时,本文还提供了示例代码,方便读者进行实践和学习。在实际项目中,日志是非常重要的一部分,希望本文能够帮助读者更好地进行日志配置。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65e3d7d81886fbafa401cfb8