什么是 magnet-pino
magnet-pino 是一个可以快速集成 Pino 日志记录的 npm 包,它能够自动捕捉你的日志信息并将其写入文件或者输出到控制台。magnet-pino 还支持多个日志记录上下文,包括远程调用和异常崩溃日志。
安装 magnet-pino
使用 npm 进行安装:
npm install magnet-pino
使用 magnet-pino
下面是一个简单的使用示例:
const magnetPino = require('magnet-pino')(); const log = magnetPino.log({ name: 'my-app', level: 'info', }); log.info('Hello, magnet-pino!');
以上代码将输出以下内容到终端:
{"name":"my-app","level":30,"pid":43256,"hostname":"localhost","type":"log","msg":"Hello, magnet-pino!","time":1621377821194,"v":1}
通过 magnetPino 模块调用 .log() 方法来生成一个 Pino 日志记录器。在 .log() 方法调用中,你可以传入日志上下文的配置项,其中 level 表示日志信息的级别。详细的日志级别说明可以参考 Pino 文档。
默认情况下,magnet-pino 日志记录器将输出到标准输出流,如果需要将日志信息记录到文件中,可以通过以下方式:
const magnetPino = require('magnet-pino')({ logToFile: true, fileName: 'app.log', });
此时日志信息会输出到指定的文件中(app.log),并在每日凌晨0点自动创建一个归档文件(app.log.2021-05-19)。
magnet-pino 配置项
magnet-pino 的全局配置项如下:
- level: string,表示日志级别,默认为 info。
- logToFile: boolean,表示是否记录日志到文件中,默认为 false。
- fileName: string,表示记录日志到文件中的文件名,默认为 magnet-pino.log。
- fileMaxSize: string/number,表示单个日志文件的最大大小,默认为 10MB。
- fileMaxAge: string,表示单个日志文件的最长保留时间,默认为 1d。
- compress: boolean,表示是否启用 gzip 压缩归档文件,默认为 true。
其它 Usage 帮助
除了一些基本的使用方法之外,magnet-pino 还支持一些特定的 Pino 格式化、过滤等功能。具体使用可以通过以下方式:
-- -------------------- ---- ------- ----- ---------- - ------------------------ ---------- ----- --------- ---------- ------- ------- ------- ---------------------- --- ----- --- - ---------------- ----- --------- ------ ------- ------------ - ---- ------------------------ ---- ------------------------ -- --- ---------------- -------------- - ---- - ------- ------ ---- ---------------------- -- ---- - ----------- ---- -- ---
在以上代码中,我们指定了 magnet-pino 的一些详细配置,比如日志输出格式为 json,过滤了 req.body.password 这个字段,同时我们也对日志记录器的上下文数据进行了序列化,使得其能够正确输出 req 和 res 的信息。
结论
使用 magnet-pino,我们可以非常方便地在应用程序中集成 Pino 日志记录器。它支持几乎所有 Pino 的功能,并提供了一些特殊的配置项来满足更复杂的应用场景。您可以查看 magnet-pino 的源码了解更多细节。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005552c81e8991b448d2604