# @devicefarmer/adbkit-logcat 中文文档

规范地址：https://npmcn.com/package/%40devicefarmer/adbkit-logcat/

版本：3\.0\.0
npm 元数据更新时间：2026-10-24T23:39:23.935Z
中文译文更新时间：2026-11-12T03:15:42.940Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40devicefarmer/adbkit-logcat
原文对照：https://npmcn.com/package/%40devicefarmer/adbkit-logcat/?lang=original
项目主页：https://github.com/DeviceFarmer/adbkit-logcat#readme
源码仓库：https://github.com/DeviceFarmer/adbkit-logcat

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：24.2 kB，19 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>= 22
- 运行依赖：0 个
- 首次发布：2020-05-16T12:00:14.583Z
- 最新版本发布：2026-10-24T23:39:23.598Z
- 近 30 天下载量：2708558（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：8（近 12 个月 1 个）

## 中文简介

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

## 安装

```sh
npm install @devicefarmer/adbkit-logcat
```

也可以使用：`pnpm add @devicefarmer/adbkit-logcat`、`yarn add @devicefarmer/adbkit-logcat`、`bun add @devicefarmer/adbkit-logcat`

## README

# adbkit 日志猫

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

## 所需资源

-   [节点.js](https://nodejs.org/) 22岁或更新。 旧版本不支持 .

## 开始

通过国家预防机制安装:

```bash
npm install --save @devicefarmer/adbkit-logcat
```

### 实例

#### 输出全部日志消息

##### Java 脚本

```javascript
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`](http://nodejs.org/api/stream.html)。请注意,您必须单独创建溪流.

**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`](http://nodejs.org/api/events.html)。 。 。 .

#### 活动

现有活动如下:

-   **错误** **(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`](http://nodejs.org/api/buffer.html)。 。 。 .

## 更多信息

-   [日志打印.c](https://github.com/android/platform_system_core/blob/master/liblog/logprint.c)
-   [logcat.cpp (英语)](https://github.com/android/platform_system_core/blob/master/logcat/logcat.cpp)
-   [记录器.h](https://github.com/android/platform_system_core/blob/master/include/log/logger.h)

## 释放

软件包以 npm 的形式发布 [`@devicefarmer/adbkit-logcat`](https://www.npmjs.com/package/@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*` 分支无法发布.

## 捐款

见 [捐款额](https://npmcn.com/package/%40devicefarmer/adbkit-logcat/CONTRIBUTING.md)。 。 。 .

## 许可证

见 [自由主义](https://npmcn.com/package/%40devicefarmer/adbkit-logcat/LICENSE)。 。 。 .

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

## 常见问题

### @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 和提交记录判断。

