# @applicaster/x-ray 中文文档

规范地址：https://npmcn.com/package/%40applicaster/x-ray/

版本：0\.9\.10
npm 元数据更新时间：2026-10-30T13:51:11.928Z
中文译文更新时间：2026-11-06T11:41:09.258Z
软件包许可：未声明

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

原始 npm 页面：https://www.npmjs.com/package/%40applicaster/x-ray
原文对照：https://npmcn.com/package/%40applicaster/x-ray/?lang=original

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

- 包体积（解压后）：919 kB，274 个文件
- TypeScript 类型：未声明
- 运行依赖：0 个
- peer 依赖：react \*，react-native \*
- 首次发布：2020-08-21T07:05:22.864Z
- 最新版本发布：2026-10-30T13:51:11.729Z
- 近 30 天下载量：3929（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：119（近 12 个月 30 个）

## 中文简介

Applicaster X-Ray Logger 软件

## 安装

```sh
npm install @applicaster/x-ray
```

也可以使用：`pnpm add @applicaster/x-ray`、`yarn add @applicaster/x-ray`、`bun add @applicaster/x-ray`

## README

# 一般用途

![Logo](https://npmcn.com/package/%40applicaster/x-ray/docs/art/xray_blue.png)

## 概览

图书馆为Android,iOS和React Industrial提供通用记录和报告设施.

## 动机

虽然Android和iOS有许多不同的记录系统,但它们大多面向开发者,只执行单项任务:记录. 有的过于简单(timber),有的过于复杂(logs4j),无一提供用户/QA面对的特性:轻松的外置配置,UI.

X-Ray图书馆的设计目标如下:

-   为Android,iOS,以及React Industrial伐木提供滴入解决方案.
-   模块化,因此许多组件可以用作独立的,或者与其他伐木解决方案结合.
-   为开发者报告信息提供方便的语法和基础设施.
-   提供随时可用UI组件进行日志配置、显示和报告.
-   提供与应用诊断和见解相关的额外功能:崩溃报告,日志共享.
-   易于扩展和定制.
-   继承其他伐木系统的最佳做法,包括: [蟒](https://docs.python.org/3/library/logging.html), C # (韩语) [赛里洛](https://serilog.net/)等 (中文(简体) ).

## 特征 :

-   自定义汇,如Serilog:亚行,文件等.
-   弹性过滤
-   扩展: 崩溃报告,通知控制
-   带有 Moshi 的深对象堆放支持

## Android 设置

在最小配置中,只需要核心. 它包含所有需要的日志接口,过滤规则和基本汇.

### 与图书馆的联系

项目可以通过下列方式连接:

1.  利用出土文物:

马文文物是当地安卓应用的推荐方式.

将以下寄存器添加到您的工程顶级格勒

`maven { url 'https://dl.bintray.com/applicaster-ltd/maven_plugins' }`

连接核心 : `implementation('com.applicaster:xray-core:0.0.4-alpha')`

可选链接扩展需要 : `implementation('com.applicaster:xray-crashreporter:0.0.4-alpha')`

2.  从 npm 仓库

国家防范机制一揽子计划包括源代码形式的项目。 反应-原生项目方便度.

3.  作为git子模块

用于开发者在新扩展或扩展库本身的工作.

### Android 初始化和基本用途

初始化并附加汇.

```
        val fileLogSink = PackageFileLogSink(this, "default.log");

        Core.get()
            .addSink("adb", ADBSink())
            .addSink("file", fileLogSink)
```

可选地配置崩溃报告扩展

```
        Reporting.init("crash@example.com", fileLogSink.file)
        Reporting.enableForCurrentThread(this, true)
```

开始记录 :

```
        val rootLogger = Logger.get()
        rootLogger
            .d("Test")
            .message("Basic message")
```

从某个子系统的某个特定组件登录 :

```
        val logger = Logger.get("subsystem/component")
        logger
            .d("Test")
            .message("Basic message")
```

## 高级过滤配置

从任何日志器输出到任何汇都可以被过滤. 默认过滤器执行允许通过日志级别过滤.

在这里, 我们只允许错误消息传递到第二个文件槽 `error_log_sink`数字 :

```
        Core.get()
            .addSink("default_log_sink", fileLogSink)
            .addSink("error_log_sink", errorFileLogSink)
            .setFilter("error_log_sink", "", DefaultSinkFilter(LogLevel.error))
```

在每次应用程序启动时重制出动词日志级别日志文件,或按要求启用以避免占用过多的空间,同时保留或旋转错误日志文件时,可以使用此功能.

过滤可以为特定的子系统及其后人所压倒. 在这里,我们允许所有消息从 `childLogger` 及其子孙传入第二个文件槽:

```
        Core.get()
            .setFilter("error_log_sink", "childLogger", DefaultSinkFilter(LogLevel.debug))
```

请参看 [./docs/adr/003-下沉-过滤器.md](https://npmcn.com/package/%40applicaster/x-ray/docs/adr/003-sink-filters.md) 关于过滤方法的更详细信息.

# 建筑和部署

项目可以同时发布给npm和maven. 马文出版由CI完成,但可以手动进行. 请参考 [.circleci/config.yml 页面存档备份,存于互联网档案馆](https://npmcn.com/package/%40applicaster/x-ray/.circleci/config.yml) 用于出版步骤.

## npm 发布

### 稳定释放(基于承诺)

1.  合并更改为 `master`。 。 。 .
2.  `deploy_npm` 运行 `node ./scripts/publish_npm.js` 并计算自上次发布以来承诺消息的释放出错.
3.  脚本更新 `package.json` 版本,发布到 npm (`latest`),然后创造并推进:
    -   承诺: `chore: publish @applicaster/x-ray@<version>`
    -   标签 : `<version>`

### 加那利释放(PR分支)

合并前的测试更改 :

1.  打开拉动请求( 除 `master`) (中文(简体) ).
2.  等着 `build` 任务要完成.
3.  手动批准 `hold_create_canary` 在圆环CI.
4.  `deploy_npm_canary` 运行 `node ./scripts/publish_npm.js --canary` ——与"扎普-框架"相同的规则 `scripts/publish_plugins.js --canary`数字 :
    -   `BREAKING CHANGE` 自上次公布以来 **主要**
    -   `feat` 犯罪(例如:. `feat: …`页:1 **小声**
    -   任何其他罪行(`chore`, (中文(简体) ), `fix`页:1 **补丁**
    -   版本基础是最新的 git 标记( 或 `package.json` (如果更高) (中文(简体) ).
    -   加那利语版本: 如果 npm `next` 与起伏版本相提并论 `next` (例如:. `0.7.2-alpha.0` → `0.7.2-alpha.1`页:1 `${bumpedVersion}-alpha.0`。 。 。 .
    -   发布到 `next` ditt-tag( 秒数) (`npm view versions` 避免重复版本; 在登记册处理时重复409次).

当地金丝雀出版社(`NPM_TOKEN` 所需:

```bash
yarn install
yarn publish:canary
```

用于 Maven 出版的艺术版本必须匹配 `releaseVersion` 常数在 `android/gradle/constants.gradle`。 。 。 .

注意xray 组件对扩展的依赖性是使用特殊帮助函数导入的 `xrayAPI`,例如:

`xrayAPI(dependencies, ':xray-core')`

这种帮助者动态地解决对项目或出土文物的依赖性,并在项目中存储依赖性信息. 存储的依赖性信息后来被maven出版脚本用于构建POM文件. 这种方法可以避免依赖性解析失败,因为在出版过程中,扩展依赖于仅待出版的文物.

# 要执行 :

-   日志中动态上下文提供者( 线等)
-   映射器配置
-   使用 Dummy 事件构建器, 如果日志事件不会被记录以保存性能
-   带有时间、标签等占位符的事件格式化器
-   模板中命名的占位符( WIP)
-   内循环缓冲事件槽
-   可能输出文件汇到缓存而不是数据存储, 这样用户就可以在不丢失数据的情况下擦拭它
-   Trim/旋转文件汇
-   HTTP 服务器槽

## 问题:

-   使用特定 Android 无效说明
-   内部使用 Kotlin

## 常见问题

### @applicaster/x-ray 是什么？

Applicaster X-Ray Logger 软件

### 如何安装 @applicaster/x-ray？

在项目目录运行 npm install @applicaster/x-ray，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（\*）、react-native（\*）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @applicaster/x-ray 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/applicaster\_\_x-ray 是否存在。

### @applicaster/x-ray 可以商用吗？

@applicaster/x-ray 使用 未声明 许可。package\.json 没有声明许可证。没有许可证的代码默认保留全部权利，商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括，不构成法律意见，请以许可原文为准。

### @applicaster/x-ray 的下载量有多少？

根据 npm 官方下载统计，@applicaster/x-ray 在 2026/10/07 – 2026/11/05 这 30 天内被下载 3,929 次，日均约 131 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @applicaster/x-ray 还在维护吗？

最新版本 0\.9\.10 发布于 2026/10/30（8 天前）；至今共发布 119 个版本，其中过去 12 个月发布了 30 个；首次发布于 2020/08/21。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

