bunyan-loopback-stream 是一个 Node.js 日志库 Bunyan 的输出流插件,它可以将日志数据发送到 LoopBack 应用程序的日志组件里。在本文中,我们将了解如何使用 bunyan-loopback-stream,以及它的一些高级用法。
安装
你可以使用 npm 安装 bunyan-loopback-stream:
npm install bunyan-loopback-stream --save
基础用法
在项目中,你需要使用 bunyan 创建一个日志记录器,但是 bunyan 并没有对应的输出流可以将日志发送到 LoopBack 应用程序的日志组件。这时候就需要使用 bunyan-loopback-stream 这个插件。具体来说,你可以像这样将 bunyan-loopback-stream
关联到已有的 bunyan
实例中:
-- -------------------- ---- ------- ----- ------ - ------------------ ----- -------------------- - ---------------------------------- ----- --- - --------------------- ----- ----------- -------- - -- ------- ------ -- - ------- ---------------------- ------- --- -- -- -- -------- ------- - - ---
在上述代码中,app
是一个 LoopBack 应用程序实例。bunyanLoopBackStream
将返回一个可写的流,它将日志输出到 app.log()
方法中。
同时,你也可以在 LoopBack 应用程序中的日志组件里收到日志,而且这大大简化了应用日志的收集和管理:
app.logger.get('MyLogger').info('this is a log')
高级选项
收集 HTTP 请求头和响应头信息
如果要捕获所有 HTTP 请求和响应的标头信息,可以将 bunyan-loopback-stream
调整为监听 express 服务器的“pipe”事件。这是使用高级参数进行配置的,例如:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------ - ------------------ ----- -------------------- - ---------------------------------- ----- --- - ---------- ----- --- - --------------------- ----- ----------- -------- - - ------- ---------------------- ------- ---- ------ -------- -------- - - ----- -------- ------ ---- ---- -- - ------ ------ --- ---------------- -- ----- -------------- ----- --------- ------ ------- - -- --------- - ----------------------------------- - -- - - ---
在上面的配置中,我们可以观察以下不同类型的配置:
server
- 这里和前面相同,是 LoopBack 应用程序实例。level
- 日志级别,这里为 trace 级别,用以覆盖默认的 info 级别。parsers
- 这是一个可选选项数组,其中包含所有可用于自定义解析传入的数据的解析器。在此示例中,我们定义了一个名为 “redact-auth”的解析器,该解析器会替换authorization
响应头中的内容,以便在记录时不会“泄漏”认证数据。excludes
- 这是一个可选的正则表达式数组,用于从请求和响应中删除指定名称的标头(例如密码和信用卡号)。
过滤日志
可以使用拦截器函数来更详细地控制日志输出。例如,下面的示例仅在日志消息为 "Info" 或 "Warning" 时才将其发送到 LoopBack 日志记录器:
-- -------------------- ---- ------- ----- ------ - ------------------ ----- -------------------- - ---------------------------------- ----- --- - --------------------- ----- ----------- -------- - - ------- ---------------------- ------- ---- ------ -------- ------------- - - ----- -------- ------- ------- ------ -------- - ----- -------- ------- ------- ------ ------- - -- - - ---
在这个例子中,我们定义了一个拦截器来过滤日志级别,日志消息等于 "Info"
或 "Warning"
时将被记录到 LoopBack 日志记录器。
小结
bunyan-loopback-stream 这个 npm 包非常有用,特别是在需要将日志数据发送到 LoopBack 应用程序的日志组件时。在本文中,我们讨论了如何安装和使用 bunyan-loopback-stream, 以及一些高级用法。
如果你想深入了解 bunyan 和 bunyan-loopback-stream,可以参考它们的 GitHub 页面。
示例代码
下面是使用 bunyan-loopback-stream 的示例代码:
-- -------------------- ---- ------- ----- ------ - ------------------ ----- -------------------- - ---------------------------------- ----- --- - --------------------- ----- ----------- -------- - - ------- ---------------------- ------- --- -- - - --- ------------------------------------- -- - -----
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066c8eccdc64669dde56bf