简介
对于 web 应用来说,灵活的日志记录是一个必不可少的特性。Hapi 是一个优秀的 Node.js web 应用框架,同时 Pino 是一个高性能的 JSON 格式日志库。结合 Hapi 和 Pino 可以轻易地实现高效可靠的日志记录。
本文将会介绍如何在 Hapi 应用中使用 Pino 进行日志记录。
安装
首先需要安装 Hapi 和 Pino。可以使用 npm 安装:
npm install @hapi/hapi pino
集成
在 Hapi 应用中使用 Pino 进行日志记录很简单。只需要在 Hapi 实例化时传入 Pino 的实例即可。
const Hapi = require('@hapi/hapi') const pino = require('pino') const logger = pino({ prettyPrint: true }) const init = async () => { const server = Hapi.server({ port: 3000, host: 'localhost', debug: { request: ['error'] }, // 将 logger 实例传入 options 中 logger: logger }); await server.start(); console.log('Server running on %s', server.info.uri); }; process.on('unhandledRejection', (err) => { console.log(err); process.exit(1); }); init();
这样,在应用的任何地方,都可以通过 server.logger
方法使用 Pino 实例进行日志记录。
const handler = (request, h) => { request.server.logger.info('Hello, world!'); return 'Success'; };
配置
Pino 有许多配置选项,可以自定义日志格式和记录级别,以适应应用的需求。在初始化 Pino 实例时传入配置选项即可。
const logger = pino({ level: 'info', prettyPrint: true, redact: { paths: ['password', '*.password', 'access_token'], censor: 'REDACTED' } })
上面的代码定义了日志记录的级别为 info
,启用了可读性更好的输出格式,以及对敏感信息(如密码、access_token)进行了处理,输出 REDACTED
。
更多配置选项请参考 Pino 的文档。
总结
在 Hapi 应用中使用 Pino 进行日志记录非常简单,只需要实例化 Pino 并将其作为 Hapi 的 logger 实例。同时,Pino 的配置选项也非常丰富,可以灵活地适应应用的需求。
日志记录虽然看似简单,但实质上非常重要。好的日志记录可以让你在应用出现问题时,快速定位问题,予以解决。因此,我们应该充分发挥 Pino 的优势,充分利用日志记录,提高应用的健壮性和稳定性。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65bacdc0add4f0e0ff35ba94