推荐答案
在 Fastify 中使用 pino
进行日志记录非常简单,因为 Fastify 默认集成了 pino
作为其日志记录器。以下是如何在 Fastify 中使用 pino
进行日志记录的示例:
-- -------------------- ---- ------- ----- ------- - -------------------- ------- ---- -- -- ---- ----- --- ---------------- ----- --------- ------ -- - ---------------------- -- -- ---- ------ -- ---- ---- ----- ------ - ------ ------- -- --- -------------------- ----- -- - -- ----- - ----------------------- -- ---- ----- ----- ---------------- - ------------------------ --------- -- ------------------------ -- ---- ---- ----- ---
本题详细解读
1. Fastify 默认集成 pino
Fastify 默认使用 pino
作为其日志记录器。你只需要在创建 Fastify 实例时,将 logger
选项设置为 true
,即可启用 pino
日志记录器。
const fastify = require('fastify')({ logger: true });
2. 日志级别
pino
支持多种日志级别,包括 trace
、debug
、info
、warn
、error
和 fatal
。你可以根据需要在不同的场景下使用不同的日志级别。
-- -------------------- ---- ------- ---------------- ----- --------- ------ -- - ----------------------- -- - ----- ------ ----------------------- -- - ----- ------ ---------------------- -- -- ---- ------ ---------------------- -- - ---- ------ ----------------------- -- -- ----- ------ ----------------------- -- - ----- ------ ------ - ------ ------- -- ---
3. 自定义 pino 配置
如果你需要自定义 pino
的配置,可以通过传递一个配置对象来覆盖默认配置。
const fastify = require('fastify')({ logger: { level: 'info', prettyPrint: true // 启用 pretty print 格式化输出 } });
4. 访问日志记录器
在 Fastify 中,你可以通过 fastify.log
或 request.log
来访问日志记录器。fastify.log
用于记录应用级别的日志,而 request.log
用于记录与特定请求相关的日志。
fastify.listen(3000, (err) => { if (err) { fastify.log.error(err); // 应用级别的错误日志 process.exit(1); } fastify.log.info('Server listening on http://localhost:3000'); // 应用级别的信息日志 });
5. 日志格式
pino
默认输出 JSON 格式的日志,这使得日志易于解析和处理。如果你需要更友好的输出格式,可以使用 pino-pretty
插件。
npm install pino-pretty
然后在配置中启用 prettyPrint
:
const fastify = require('fastify')({ logger: { prettyPrint: true } });
通过以上步骤,你可以在 Fastify 中轻松使用 pino
进行日志记录,并根据需要自定义日志级别和格式。