Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions website/docs/en/api/javascript-api/core.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -423,6 +423,8 @@ In Rsbuild, most options that support function values use this rule, such as `to

Creates an isolated logger instance based on [rslog](https://github.com/rstackjs/rslog). Use this when you need custom log levels or overrides without mutating the shared [logger](#logger) singleton.

The created logger can also be passed to the [customLogger](/config/custom-logger) config option.

- **Example:**

```ts
Expand Down
1 change: 1 addition & 0 deletions website/docs/en/config/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"log-level",
"split-chunks",
"environments",
"custom-logger",
{
"type": "dir-section-header",
"name": "dev",
Expand Down
41 changes: 41 additions & 0 deletions website/docs/en/config/custom-logger.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
description: 'Use customLogger to attach a logger instance to the current Rsbuild instance. Create it with createLogger() for isolated logging.'
---

# customLogger

- **Type:** [Logger](/api/javascript-api/core#logger)
- **Default:** `undefined`

Uses a custom logger instance for the current Rsbuild instance.
Comment thread
chenjiahan marked this conversation as resolved.

## Example

Use [createLogger](/api/javascript-api/core#createlogger) to create a new logger instance.

```ts title="rsbuild.config.ts"
import { createLogger, defineConfig } from '@rsbuild/core';

const logger = createLogger({
level: 'warn',
});

export default defineConfig({
customLogger: logger,
});
```

## Global logger vs instance logger

Rsbuild provides two ways to access a logger:

- The global logger is the shared [logger](/api/javascript-api/core#logger) singleton exported from `@rsbuild/core`.
- The instance logger is the logger associated with the current Rsbuild instance, exposed as [rsbuild.logger](/api/javascript-api/instance#rsbuildlogger) or [api.logger](/plugins/dev/core#apilogger) in plugins.

When `customLogger` is not set, the instance logger falls back to the shared global logger. When `customLogger` is set, the instance logger references that custom logger instead.

## Version history

| Version | Changes |
| ------- | ------------------------------- |
| v2.0.0 | Added the `customLogger` option |
2 changes: 1 addition & 1 deletion website/docs/en/guide/migration/vite.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ Here is the corresponding Rsbuild configuration for each Vite option:
| logLevel | [logLevel](/config/log-level) |
| cacheDir | [buildCache](/config/performance/build-cache) |
| publicDir | [server.publicDir](/config/server/public-dir) |
| customLogger | [Custom logger](/api/javascript-api/core#custom-logger) |
| customLogger | [customLogger](/config/custom-logger) |
| assetsInclude | [source.assetsInclude](/config/source/assets-include) |
| resolve.alias | [resolve.alias](/config/resolve/alias) |
| resolve.dedupe | [resolve.dedupe](/config/resolve/dedupe) |
Expand Down
2 changes: 2 additions & 0 deletions website/docs/zh/api/javascript-api/core.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -423,6 +423,8 @@ const mergedConfig = {

基于 [rslog](https://github.com/rstackjs/rslog) 创建一个独立的 logger 实例。当你需要自定义日志级别或覆盖日志方法,同时又不想修改共享的 [logger](#logger) 单例时,可以使用该方法。

创建出的 logger 也可以传给 [customLogger](/config/custom-logger) 配置项使用。

- **示例:**

```ts
Expand Down
1 change: 1 addition & 0 deletions website/docs/zh/config/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"log-level",
"split-chunks",
"environments",
"custom-logger",
{
"type": "dir-section-header",
"name": "dev",
Expand Down
41 changes: 41 additions & 0 deletions website/docs/zh/config/custom-logger.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
description: '为当前 Rsbuild 实例指定独立的 logger。推荐配合 createLogger() 创建,避免修改共享 logger。'
---

# customLogger

- **类型:** [Logger](/api/javascript-api/core#logger)
- **默认值:** `undefined`

为当前 Rsbuild 实例指定一个自定义 logger。
Comment thread
chenjiahan marked this conversation as resolved.

## 示例

使用 [createLogger](/api/javascript-api/core#createlogger) 来创建一个新的 logger 实例。

```ts title="rsbuild.config.ts"
import { createLogger, defineConfig } from '@rsbuild/core';

const logger = createLogger({
level: 'warn',
});

export default defineConfig({
customLogger: logger,
});
```

## 全局 logger 与实例 logger

Rsbuild 提供了两种获取 logger 的方式:

- 全局 logger 是从 `@rsbuild/core` 导出的共享 [logger](/api/javascript-api/core#logger) 单例。
- 实例 logger 是当前 Rsbuild 实例关联的 logger,可以通过 [rsbuild.logger](/api/javascript-api/instance#rsbuildlogger) 获取,在插件中也可以通过 [api.logger](/plugins/dev/core#apilogger) 获取。

当未配置 `customLogger` 时,实例 logger 会回退到共享的全局 logger;当配置了 `customLogger` 时,实例 logger 则会引用该自定义 logger。

## 版本历史

| 版本 | 变更内容 |
| ------ | ------------------------ |
| v2.0.0 | 新增 `customLogger` 选项 |
2 changes: 1 addition & 1 deletion website/docs/zh/guide/migration/vite.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ Rsbuild 会在构建时自动注入 `<script>` 标签到生成的 HTML 文件中
| logLevel | [logLevel](/config/log-level) |
| cacheDir | [buildCache](/config/performance/build-cache) |
| publicDir | [server.publicDir](/config/server/public-dir) |
| customLogger | [Custom logger](/api/javascript-api/core#自定义-logger) |
| customLogger | [customLogger](/config/custom-logger) |
| assetsInclude | [source.assetsInclude](/config/source/assets-include) |
| resolve.alias | [resolve.alias](/config/resolve/alias) |
| resolve.dedupe | [resolve.dedupe](/config/resolve/dedupe) |
Expand Down
4 changes: 4 additions & 0 deletions website/theme/rsbuildPluginOverview.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ export const rsbuildPluginOverview: RsbuildPlugin = {
text: 'environments',
link: '/config/environments',
},
{
text: 'customLogger',
link: '/config/custom-logger',
},
],
},
];
Expand Down