# @basenative/logger 中文文档

规范地址：https://npmcn.com/package/%40basenative/logger/

版本：3\.0\.0
npm 元数据更新时间：2026-10-31T13:47:03.782Z
中文译文更新时间：2026-10-31T16:29:11.294Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40basenative/logger
原文对照：https://npmcn.com/package/%40basenative/logger/?lang=original
项目主页：https://github.com/DuganLabs/BaseNative/tree/main/packages/logger#readme
源码仓库：https://github.com/DuganLabs/BaseNative

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

- 包体积（解压后）：12.9 kB，5 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2026-03-20T05:27:52.148Z
- 最新版本发布：2026-10-31T13:47:03.480Z
- 已发布版本数：11（近 12 个月 11 个）

## 中文简介

支持多传输和子日志记录器的结构化日志记录

## 安装

```sh
npm install @basenative/logger
```

也可以使用：`pnpm add @basenative/logger`、`yarn add @basenative/logger`、`bun add @basenative/logger`

## README

# @basenative /记录器

> 具有与pino兼容的输出、传输和子记录器的结构化JSON日志记录

部分 [BaseNative](https://github.com/DuganLabs/basenative) 生态系统——基于信号的web运行时，基于原生HTML。

## 安装

```bash
npm install @basenative/logger
```

## 快速入门

```js
import { createLogger } from '@basenative/logger';

const log = createLogger({ name: 'api', level: 'info' });

log.info('Server started', { port: 3000 });
log.warn('Slow query', { duration: 1200, table: 'users' });
log.error('Unhandled error', { err });
```

## 孩子伐木工

```js
const requestLog = log.child({ requestId: 'abc-123' });
requestLog.info('Incoming request'); // always includes requestId
```

## 请求中间件

```js
import { createLogger, requestLogger } from '@basenative/logger';
import { createPipeline } from '@basenative/middleware';

const log = createLogger({ name: 'http' });

const pipeline = createPipeline().use(requestLogger(log));
// ctx.state.logger is now a child logger with requestId, method, url
```

## API

### `createLogger(options?)`

创建日志程序实例。选项:

-   `level` —最小日志级别： `'trace'`， `'debug'`， `'info'`， `'warn'`， `'error'`， `'fatal'`。默认值: `'info'`.
-   `name` -日志记录器名称，包含在每个日志条目中。
-   `transport` -传输实例(默认： `consoleTransport()`）。
-   `context` —在每个日志条目中合并静态键值对。
-   `timestamp` ——包括 `time` 字段（自epoch以来的毫秒数）。默认值: `true`.
-   `pretty` -漂亮的彩色打印在发展。默认值: `NODE_ENV !== 'production'`.

记录器的方法: `trace`， `debug`， `info`， `warn`， `error`， `fatal` -每个人都接受 `(msg, data?)`.

-   `.child(context)` -返回一个新的日志记录器，继承带有附加静态上下文的所有设置。
-   `.level` -只读当前级别字符串。

### 传输

-   `consoleTransport()` -写入到 `console.log`。在开发中使用漂亮的打印，在生产中使用JSON。
-   `streamTransport(stream)` -将JSON行写入任何Node.js可写流（例如文件流）。
-   `multiTransport(transports[])` -扇形输出到多个传输同时。

### 中间件

-   `requestLogger(logger, options?)` 为每个请求创建子记录器的中间件 `requestId`， `method`, `url`。把它附加到 `ctx.state.logger`． 选项: `idHeader` (默认值: `'x-request-id'`）。

## 许可证

apache - 2.0

## 常见问题

### @basenative/logger 是什么？

支持多传输和子日志记录器的结构化日志记录

### 如何安装 @basenative/logger？

在项目目录运行 npm install @basenative/logger，或使用 pnpm add / yarn add / bun add。

### @basenative/logger 支持 TypeScript 吗？

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

### @basenative/logger 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @basenative/logger 可以商用吗？

@basenative/logger 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @basenative/logger 还在维护吗？

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

