@devicefarmer/adbkit-logcat

中文文档
3.0.0发布于 2026/10/25Apache-2.0TypeScriptCommonJS零依赖构建来源已验证近 30 天下载 270.9万

用于与Android的logcat输出工作的一个Node.js接口.

中文使用文档
文档目录12 节
  1. 所需资源
  2. 开始
  3. 实例
  4. API 密码
  5. 日志卡
  6. 优先权
  7. 阅读器
  8. 条目
  9. 更多信息
  10. 释放
  11. 捐款
  12. 许可证

adbkit 日志猫

adbkit 日志猫 页:1 节点.js android 输出的操作界面 logcat 工具。它需要一个日志流(您必须单独创建),对它进行剖析,并在日志条目出现时实时发布。 可能使用的案例包括将日志存储在数据库中,通过 邮件包,或者只是高级过滤.

所需资源

  • 节点.js 22岁或更新。 旧版本不支持 .

开始

通过国家预防机制安装:

npm install --save @devicefarmer/adbkit-logcat

实例

输出全部日志消息

Java 脚本
const logcat = require('adbkit-logcat')
const {spawn} = require('child_process')

// Retrieve a binary log stream
const proc = spawn('adb', ['logcat', '-B'])

// Connect logcat to the stream
reader = logcat.readStream(proc.stdout)
reader.on('entry', entry => {
  console.log(entry.message)
})

// Make sure we don't leave anything hanging
process.on('exit', () => {
  proc.kill()
})

API 密码

日志卡

木猫。 优先权

展览 Priority详情见下文.

木猫。 阅读器

展览 Reader详情见下文.

logcat.readStream( 流 [, 选项])

从提供的logcat事件创建日志读取器实例 Stream。请注意,您必须单独创建溪流.

ImportANT:在较新的Android版本中默认的换行行为已经改变. 由于adbkit-logcat只分析输出,无法与亚行通信,你必须 外部 检测是否需要 fixLineFeeds 选项是否启用。 对于新的版本,应该关闭.

  • 流线 要读的事件流 .
  • 选项 可选的 支持以下选项:
    • 格式 溪流的形式. 目前,唯一支持的值是 'binary',(例如) adb logcat -B 生产。 默认为 'binary'。 。 。 .
    • 固定线条 在更古老的Android版本上, ADB shell 自动转换出任意 '\n' 输入 '\r\n',它打破了二进制内容。 如果设定了, 此选项在解析流之前会反转转换 。 默认为 true 为后向相容性。 你个 必须 设置此选项为 false 在更新版本.
  • 回归: Reader 举个例子.

优先权

常数

有下列静态属性:

  • 优先级 即说. 0。 。 。 .
  • 优先权 即说. 1。读取流时不可用.
  • 优先级 即说. 2。 。 。 .
  • 优先权.DEBUG 即说. 3。 。 。 .
  • 优先级. INFO 即说. 4。 。 。 .
  • 优先权。 战争 即说. 5。 。 。 .
  • 优先级. 错误 即说. 6。 。 。 .
  • 优先权。 传真 即说. 7。 。 。 .
  • 优先级. SILENT 即说. 8。读取流时不可用.

优先级 :

转换给定的静态方法 letter 输入数字优先级。 譬如说, Priority.fromName('d') 将返回 Priority.DEBUG。 。 。 .

  • 信件 作为优先事项 String。任何单一的、对大小写不敏感的字符,匹配任意一个字符的第一个字符 Priority 常数被接受.
  • 回返情况: 作为优先事项 Number,或 undefined。 。 。 .

优先级. fromName( name)

转换给定的静态方法 name 输入数字优先级。 譬如说, Priority.fromName('debug') (或 Priority.fromName('d')(将返回) Priority.DEBUG。 。 。 .

  • 名称 作为优先事项 String。任何完整、对大小写不敏感的匹配 Priority 常数被接受。 如果没有找到匹配的,请返回 Priority.fromLetter()。 。 。 .
  • 回返情况: 作为优先事项 Number,或 undefined。 。 。 .

优先级. to letter(优先级)

将数值优先级转换为其字母表示的静态方法. 譬如说, Priority.toLetter(Priority.DEBUG) 将返回 'D'。 。 。 .

  • 优先级 作为优先事项 Number任意 Priority 接受不变值.
  • 回返情况: 作为优先事项 String 信件,或 undefined。 。 。 .

优先级.to Name (优先级)

静态方法将数值优先级转换为其全弦表示. 譬如说, Priority.toLetter(Priority.DEBUG) 将返回 'DEBUG'。 。 。 .

  • 优先级 作为优先事项 Number任意 Priority 接受不变值.
  • 回返情况: 作为优先事项 String,或 undefined。 。 。 .

阅读器

读者案例,这是一个 EventEmitter。 。 。 .

活动

现有活动如下:

  • 错误 (rr) (中文(简体) ) 发生错误时被允许 .
    • 错误 一个 Error。 。 。 .
  • 结束 溪出后出.
  • 结束 溪出后出.
  • 条目 (进入) 溪出后出.
    • 条目 一个日志 Entry详情见下文.

构造器([选项])

为先进用户. 人工构造a Reader 举个例子 可用于测试和/或玩耍。 通常你会使用 logcat.readStream() 以创建实例.

  • 选项 见 logcat.readStream() 详细情况.
  • 回返:不详

读取器. connect( 流)

为先进用户. 手动启动时( 不通过 logcat.readStream(),链接 Reader 实例到给定的流.

  • 流线 见 logcat.readStream() 详细情况.
  • 回归: Reader 举个例子.

读取器. end ()

结束溪流的方便方法.

  • 回归: Reader 举个例子.

读取器。不包括(tage)

用提供的标签跳过条目 。 别名 reader.include(tag, Priority.SILENT)。请注意,即使跳过的事件也必须被解析才能被忽略.

  • 标签 要排除的标签字符串 。 若为 '*',工作与 reader.excludeAll()。 。 。 .
  • 回归: Reader 举个例子.

读取器。排除所有( )

跳过 全体 条目。 别名 reader.includeAll(Priority.SILENT)。您希望看到的任何条目都必须通过 include()编号 :includeAll()。 。 。 .

  • 回归: Reader 举个例子.

读取器。包括(tag[,优先级])

包含所有带有给定标签的条目和高于或等于给定的优先权 priority。 。 。 .

  • 标签 要包含的标记字符串 。 若为 '*',工作与 reader.includeAll(priority)。 。 。 .
  • 优先级 可选的 优先级的下限 。 任意数字 Priority 常数或任何 String 接受的数值 Priority.fromName() 已接受。 默认为 Priority.DEBUG。 。 。 .
  • 回归: Reader 举个例子.

读取器。包含全部( [优先级] )

包含所有优先级高于或等于给定的条目 priority。 。 。 .

  • 标签 要排除的标签字符串 .
  • 优先级 可选的 见 reader.include() 详细情况.
  • 回归: Reader 举个例子.

读取器. resetFilters ()

撤销所有列入/排除.

  • 回归: Reader 举个例子.

条目

日志条目.

属性

具备以下属性:

  • 日期 活动时间a Date。 。 。 .
  • 零点 进程 ID Number。 。 。 .
  • 数字 线索标识为 Number。 。 。 .
  • 优先级 事件优先 Number。您可以使用 logcat.Priority 将数值转换为 a String。 。 。 .
  • 标签 作为事件标签 String。 。 。 .
  • 消息 信息作为 String。 。 。 .

条目. to Binary ()

将条目转换回二进制日志格式.

  • 回返情况: 作为二进制事件 Buffer。 。 。 .

更多信息

释放

软件包以 npm 的形式发布 @devicefarmer/adbkit-logcat 由两个 GitHub 动作工作流程 :

  1. 运行 Prepare release 以版本作为输入,例如 2.1.4它会撞倒 package.json,写下 CHANGELOG.md gitHub 生成的音符,并按 release/v2.1.4。它没有写给 master。 。 。 .
  2. 打开任务摘要中的拉动请求链接, 贴上标签 ignore-for-release,一旦支票通过,就将其合并.
  3. 运行 Release 打开 master 和同一个版本。 标记 v2.1.4,发布 GitHub 发布,并附上来自 CHANGELOG.md,然后通过信任的出版(OIDC)来构建,测试和发布软件包到npm,所以没有npm的令牌存放在任何地方.

撞出一个拉出的要求 因为 master 被保护. Release 拒绝在任何分支上奔跑,但 master,所以没有出现 release/v* 分支无法发布.

捐款

见 捐款额。 。 。 .

许可证

见 自由主义。 。 。 .

版权:© OpenSTF 项目. 所有权利保留.

版本与发布记录

@devicefarmer/adbkit-logcat 共发布 8 个版本,首次发布于 2020/05/16;过去 12 个月发布了 1 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.0.0latest2026/10/2518 天前
2.1.32023/03/303 年前
2.1.22022/04/214 年前
2.1.12021/03/085 年前
2.1.02021/03/085 年前
1.1.02020/05/166 年前

关于 @devicefarmer/adbkit-logcat 的常见问题

@devicefarmer/adbkit-logcat 是什么?

用于与Android的logcat输出工作的一个Node.js接口.

如何安装 @devicefarmer/adbkit-logcat?

在项目目录运行 npm install @devicefarmer/adbkit-logcat,或使用 pnpm add / yarn add / bun add。

@devicefarmer/adbkit-logcat 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@devicefarmer/adbkit-logcat 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@devicefarmer/adbkit-logcat 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >= 22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@devicefarmer/adbkit-logcat 可以商用吗?

@devicefarmer/adbkit-logcat 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@devicefarmer/adbkit-logcat 的下载量有多少?

根据 npm 官方下载统计,@devicefarmer/adbkit-logcat 在 2026/10/12 – 2026/11/10 这 30 天内被下载 2,708,558 次,日均约 90,285 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@devicefarmer/adbkit-logcat 还在维护吗?

最新版本 3.0.0 发布于 2026/10/25(18 天前);至今共发布 8 个版本,其中过去 12 个月发布了 1 个;首次发布于 2020/05/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。