调试利器:浏览器 Logger

Posted 王乐平

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调试利器:浏览器 Logger相关的知识,希望对你有一定的参考价值。

1. 前言

在一些业务系统中,由于集成的平台产物或工具较多,而这些产物的 log 不收敛,很多时候打开控制台就是满屏的 log,自己的 log 需要在满屏的 log 中查找,或者在 log 上加一些前缀用 Filter 去过滤,严重影响效率。

别人的 log 是动不了了,那自己的 log 是否可以收敛起来,自动加前缀,自动按日志级别显隐,功能全一点,样式好看一些,即便你的项目被别人集成了,也能能清晰的知道日志是谁发出来的。

npm 上找了一些 logger,要么功能不全,要么不够醒目。做个 logger 也没几行代码,就写了下面这个库。

2. Lp-Logger

浏览器端 logger 工具,颜色是从 AntD 的色彩规范中找的。

2.1 API

declare module "lp-logger" {
  type Level = "error" | "warn" | "log";

  interface IProp {
    level?: Level;
    name?: string;
    search?: string;
  }

  export default class Logger {
    constructor(prop?: IProp);
    log(...args: any[]): void;
    warn(...args: any[]): void;
    error(...args: any[]): void;
    debug(...args: any[]): void;
    groupCollapsed(...args: any[]): void;
    groupEnd(...args: any[]): void;
  }
}

2.1.1 构造方法

名称说明默认值
level日志级别。用于控制哪些类型的日志类型可以显示。 (error: 只显示 error,warn: 显示 warn/error,log: 显示所有)。当有search 的 URL 查询参数时,search 的优先级最高。“log”
name输出日志中,颜色块的上文本。可以为不同项目、页面指定不同的 name,方便筛选和说明来源。“lp-logger”
search用于通过 URL 参数控制显示级别,值与 level 的一致“__lp_logger_level”

2.2 安装

支持 CDN 安装和 NPM 安装。

<script src="https://unpkg.com/lp-logger"></script>

<script>
  // new LpLogger();
</script>

2.2.2 NPM 安装

npm i -S lp-logger

2.3 使用

2.3.1 信息分组

import LpLogger from "lp-logger";

const logger = new LpLogger({
  name: "项目A",
});

logger.groupCollapsed("折叠信息1");
  logger.log("log");
  logger.groupCollapsed("折叠信息2");
    logger.error("error");
    logger.debug("debug");
  logger.groupEnd("end");
  logger.warn("warn");
logger.groupEnd("end");

2.3.2 只显示错误和警告信息

import LpLogger from "lp-logger";

const logger = new LpLogger({
  name: "项目B",
  level: "warn",
});

logger.log("log");
logger.error("error");
logger.debug("debug");
logger.warn("warn");

2.3.3 URL 控制显示

import LpLogger from "lp-logger";

const logger = new LpLogger({
  name: "项目C",
  level: "", // 空字符串时,不显示任何信息
  search: "__lp_logger_level", // 配置 URL 控制参数
});

logger.log("log");
logger.error("error");
logger.debug("debug");
logger.warn("warn");

URL 控制参数优先级最高,所以日志正常显示:


Github Repo: https://github.com/lecepin/lp-logger

以上是关于调试利器:浏览器 Logger的主要内容,如果未能解决你的问题,请参考以下文章

调试利器:浏览器 Logger

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

Logger之Logger.getLogger(CLass)

Logger之Logger.getLogger(CLass)

远程文件浏览器Unity+Lua开发调试利器

远程文件浏览器Unity+Lua开发调试利器