npm 包 `browser-log-stream` 使用教程

阅读时长 6 分钟读完

browser-log-stream 是一个可以在浏览器中实现对 console.log() 输出的实时监听器,支持连接到 Websocket 服务器将输出流上传到服务端的 npm 包。

安装

在项目中使用 npm 安装:

或者 yarn 安装:

使用

使用 browser-log-stream 一般需要两个步骤:首先在服务端启动一个 Websocket 服务器,接着在客户端连接到该服务器并开始监听输出流。

服务端

服务端可以使用任何支持 Websocket 的框架编写,例如常用的 express Web 框架。以下是一个简单的基于 ws 模块实现的 Websocket 服务器:

-- -------------------- ---- -------
----- --------- - --------------
----- --- - --- ------------------ ----- ---- ---

-------------------- -------- -------------- -
  -------------- --- ------ -------------

  ---------------- -------- ----------------- -
    --------------------- --------- ---- ---------
  ---
---

在这个例子中,wss 实例会接收客户端的连接并将服务端接收到的信息打印在控制台上。

客户端

在客户端需要引入 browser-log-stream 并使用 StreamClient 类来连接服务器,例如:

-- -------------------- ---- -------
------ - ------------ - ---- ---------------------

----- ------ - --- ------------------------------------
----------------- -- -- -
  ---------------------- -- ---------
---
-------------------- --------- -- -
  --------------------- --------- ---- ---------
---

在这个例子中,创建了一个 StreamClient 的实例,并连接到 ws://localhost:8080。一旦连接建立,'open'事件会被触发,然后每个新的输出信息都会通过 'message' 事件传送到客户端。

配置选项

在创建 StreamClient 实例的时候可以提供一个可选的配置对象,例如:

encoding

指定输出流的编码,默认值是 'utf8'

level

指定过滤输出流消息的级别,只接收 'info''warn''error',默认值是 'info'

patterns

指定一个正则表达式数组来过滤输出流的消息,只有匹配正则表达式的消息才会被传送到客户端。

prefix

指定输出流消息的前缀字符串,例如 '[APP]',默认为空字符串。

timestamp

指定是否启用输出流消息的时间戳,不指定时默认值是 false

示例代码

服务端:

-- -------------------- ---- -------
----- --------- - --------------
----- --- - --- ------------------ ----- ---- ---

-------------------- -------- -------------- -
  -------------- --- ------ -------------

  ---------------- -------- ----------------- -
    --------------------- --------- ---- ---------
  ---
---

客户端:

-- -------------------- ---- -------
------ - ------------ - ---- ---------------------

----- ------ - --- ------------------------------------
----------------- -- -- -
  ---------------------- -- ---------
---
-------------------- --------- -- -
  --------------------- --------- ---- ---------
---

完整代码:

-- -------------------- ---- -------
-- ------

----- --------- - --------------
----- - ------------ - - ------------------------------

----- --- - --- ------------------ ----- ---- ---
----- ------ - --- ------------------------------------

-------------------- -------- -------------- -
  -------------- --- ------ -------------

  ---------------- -------- ----------------- -
    --------------------- --------- ---- ---------
  ---
---

----------------- -- -- -
  ---------------------- -- ---------
---

-------------------- --------- -- -
  --------------------- --------- ---- ---------
---

------------------ ---- ------
------------------ ------- ------
------------------- ----- ------

在浏览器中打开 index.html,在控制台中可以看到输出结果:

结论

使用 browser-log-stream 可以方便的将浏览器端 console.log() 输出的信息实时上传到服务端,免去了手动粘贴、下载日志文件等繁琐步骤,节省了开发和调试的时间成本。同时,该类功能还可以扩展为错误日志的监控,将错误信息上传至服务器,从而更快的发现和修复潜在的问题。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066c89ccdc64669dde5157

纠错
反馈