本节内容源自以下链接的内容,并受 CC BY 4.0 许可。
除非另有说明,否则以下内容可以被认为是基于原始内容的修改和删除的结果。
日志输出是向最终用户显示消息的另一种方式。
Rspack 日志记录器可供 加载器 和 插件 使用。它作为 统计信息 的一部分发出,并由用户在 rspack 配置 中配置。
Rspack 中自定义日志记录 API 的优势
stats.json
的一部分导出通过引入 Rspack 日志记录 API,我们希望统一 Rspack 插件和加载器发出日志的方式,并允许更好的方式来检查构建问题。集成的日志记录解决方案通过改善开发人员的开发体验来支持插件和加载器开发人员。为非 CLI Rspack 解决方案(如仪表板或其他 UI)铺平了道路。
避免日志中的噪声!
请记住,多个插件和加载器一起使用。加载器通常处理多个文件,并为每个文件调用。选择尽可能低的日志级别以使日志输出信息丰富。
有两种类型的日志记录方法
compiler.getInfrastructureLogger
:内容不会被存储,当日志记录在编译周期之外使用时使用此方法。您可以在您的插件中像下面这样使用它们
您可以从加载器上下文中获取日志记录器,如下所示
类型: (...args: any[]): void;
方法按日志级别从高到低排列
error
:用于错误消息。warn
:用于警告。info
:用于重要信息消息。这些消息默认显示。仅在用户真正需要看到的消息时使用此方法。log
:用于不重要的信息消息。这些消息仅在用户选择查看它们时显示。debug
:用于调试信息。这些消息仅在用户选择查看特定模块的调试日志时显示。在使用 compilation.getLogger
时,输出级别可以通过 stats.logging
和 stats.loggingDebug
控制
在使用 compiler.getInfrastructureLogger
时,输出级别可以通过 infrastructureLogging.level
和 infrastructureLogging.debug
控制
断言为假时显示错误。
error
assert(assertion: any, ...args: any[]): void;
显示进度状态信息,如果存在 console.status
,则使用它,否则回退到 `console.info。
info
status(...args: any[]): void
显示堆栈跟踪,仅在使用编译日志记录器时可用,并且还需要启用 stats.loggingTrace
。
debug
trace(): void
清除所有日志,就像 console.clear()
一样。
log
clear(): void;
包含以下方法
group(...args: any[]): void
:用于分组消息。以折叠的方式显示,就像 logger.log
一样。groupEnd(...args: any[]): void
:用于结束日志记录组。groupCollapsed(...args: any[]): void
:用于将消息分组在一起。以折叠的方式显示,就像 logger.log
一样。当日志级别设置为 'verbose'
或 'debug'
时,以展开的方式显示。包含以下方法
time(label: any): void
:用于启动计时器。timeLog(label: any): void
:记录时间差,不结束计时器。timeEnd(label: any): void
:用于结束计时器并记录时间差。timeAggregate(label: any): void
:用于聚合捕获时间差。timeAggregateEnd(label: any): void
:用于结束聚合捕获并记录总时间差。包含以下方法
profile(label: any): void
:用于开始捕获分析。当支持时委托给 console.profile
。profileEnd(label: any): void
:用于结束捕获分析。当支持时委托给 console.profileEnd
。您也可以使用 logger.getChildLogger()
创建子日志记录器。子日志记录器具有相同的方法。