日志事件是由 Modern.js 分发的,类型为 log 的事件。
基于服务端运行逻辑,Modern.js 在内部提供了以下日志事件:
| 阶段 | 消息 | Level |
|---|---|---|
| RENDER_HTML | App Render To HTML | error |
| RENDER_STREAM | An error occurs during streaming SSR | error |
| RENDER_SHELL | An error occurs during streaming render shell | error |
Modern.js 也保留了旧版本中使用 useLoader 获取数据时的 SSR 日志:
| 阶段 | 消息 | Level |
|---|---|---|
| PRERENDER | App Prerender | error |
在 Modern.js 中,日志事件由 LoggerMonitor 处理,它会将日志输出到控制台。
内置的 LoggerMonitor 依赖了 rslog 库。
例如在项目中有意的抛出一个错误:
import './index.css';
const Index = () => <div className="container-box">{a}</div>;
export default Index;如果运行正常,可以在控制台看到如下输出:
> Local: http://localhost:8080/
> press h + enter to show shortcuts
error SSR Error - App Prerender, error = ReferenceError: a is not defined
at Index (/somepath/page.tsx:3:1)