日志事件

日志事件是由 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
USE_LOADER App run useLoader error
TIP

useLoader API 目前已经废弃,建议迁移到约定式路由并使用 Data Loader 进行数据获取。已经使用 Data Loader 的应用,可以开启 ssr.disablePrerender,禁止预渲染,提升 SSR 性能。

内置 Monitor

在 Modern.js 中,日志事件由 LoggerMonitor 处理,它会将日志输出到控制台。

INFO

内置的 LoggerMonitor 依赖了 rslog 库。

例如在项目中有意的抛出一个错误:

routes/page.tsx
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)