> ## Documentation Index
> Fetch the complete documentation index at: https://docs.molesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# RUM 浏览器日志

> 在浏览器里写日志，并和发生时的会话、页面关联。

浏览器 SDK 写日志时带上发生时的会话和视图，所以日志能跳到回放，会话页能看到页面写了什么。只有写了日志或要求转发控制台时才发送。

```ts theme={null}
import { molesignalRum } from '@molesignal/browser-rum';

molesignalRum.logger.info('打开购物车', { items: 3 });

const payments = molesignalRum.createLogger({ name: 'payments', level: 'warn', context: { provider: 'stripe' } });
payments.error('支付被拒', { code: 402 }, error);
```

logger 会跳过低于自身级别的日志，级别有 `debug`、`info`、`warn`、`error`。第三个参数传错误时，日志会保留它的类型和堆栈。

同时转发页面写到控制台的内容：

```ts theme={null}
init({ /* … */ forwardConsoleLogs: ['warn', 'error'] }); // 或者 'all'
```

控制台本来的输出不受影响。控制台可能有个人数据时不要打开，或者确认应用的[接入时清理](https://docs.molesignal.com/zh-Hans/rum/privacy.md#在接入时去掉敏感文本)，它也覆盖日志的文本和堆栈。

## 在哪里看

* [会话页](https://docs.molesignal.com/zh-Hans/rum/explorer.md)回放下面的 **日志** 页签按顺序列出它们，点亮回放走到的那一行，点一行回放跳到那个时刻。
* [探索页](https://docs.molesignal.com/zh-Hans/rum/explorer.md)的行类型里有 **日志**。
* **日志** 模块里 `rum_logs` 是一条普通日志流，有 `level` 和 `message`，级别柱状图等功能和其他日志一样。

应用[不保留](https://docs.molesignal.com/zh-Hans/rum/sampling.md)的会话不留日志。日志不计入视图的计数。

## SDK 自身的问题

SDK 自身出问题时（服务端拒收事件、`beforeSend` 抛错），会写一条日志，logger 是 `molesignal-rum`，来源是 `sdk`，同样的问题只写一次，每次页面加载最多几条。发送途中出的问题不在其中，因为日志同样到不了。用 `trackSdkErrors: false` 关闭。`onError` 无论如何都会被调用。

## 字段

| 列 | 含义 |
| - | - |
| `level` | `debug`、`info`、`warn` 或 `error`。 |
| `message` | 内容。 |
| `log.id` | 日志的 ID。 |
| `log.logger` | logger 的名字：控制台是 `console`，SDK 自身是 `molesignal-rum`。 |
| `log.origin` | `logger`、`console`、`report` 或 `sdk`。 |
| `log.error_type`、`log.stack` | 这条日志说的错误。 |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.