跳转到内容

运行时配置

运行时配置决定当代码运行到日志器时,哪些调用真正会输出。它是最终的真理来源——即使构建插件裁掉了被关闭的调用,所有留在打包产物里的调用仍然要再过一次运行时这道门。

本页涵盖:

  • 未配置时的默认可见性策略。
  • 如何用 levelsdebug 收紧或放宽输出。
  • 如何重置默认作用域。
  • 构建插件控制下,归属权如何变化。

如果想按 maingroup 或消息匹配,而不只是按级别,请参考 规则与预设

默认可见性

如果你既没调用 setLoggerConfig(),也没装 loggerPlugin,Logaria 会使用:

ts
{
  levels: ['info', 'success', 'warn', 'error'];
}

默认隐藏 debug 调用,其他级别都会输出。

Levels

levels 设置非 debug 日志方法的允许列表

ts
import { setLoggerConfig } from 'logaria';

setLoggerConfig({
  levels: ['warn', 'error'],
});

支持的可见性级别:

级别Logger 方法
errorlogger.error()
warnlogger.warn()
infologger.info()
successlogger.success()

为什么 debug 不在 levels

debug 故意独立出来。它由 debug 标志而非 levels 列表控制,因为它是为“诊断专用”的输出准备的——即便 info 级别已经开启,也要显式选择加入才会显示。

Debug 模式

在没有解析出任何规则的简单配置下,debug: true 会做两件事:

  1. 显示 logger.debug() 调用——默认情况下它们是隐藏的。
  2. 在提供耗时选项时,给可见的非 debug 日志附加耗时信息
ts
setLoggerConfig({
  debug: true,
  levels: ['info', 'success', 'warn', 'error'],
});

规则模式下,debug: true 的行为不同:logger.debug() 始终被屏蔽,该标志只给规则放行的非 debug 日志加上命中的规则标签与耗时。完整对比见 核心概念 — 两种模式下的 Debug

重置配置

在直接(非插件)使用模式下,用 resetLoggerConfig() 清空默认作用域:

ts
import { resetLoggerConfig } from 'logaria';

resetLoggerConfig();

重置之后,下一次访问默认作用域日志器会回退到上述内置默认配置。

测试中使用

如果在测试里调用 setLoggerConfig,请在 afterEach 里搭配调用 resetLoggerConfig,让下一条用例从同一个基线开始。

构建工具控制的运行时

一旦打包工具安装了 loggerPlugin,默认作用域会变为受控——由注入的构建期常量决定。这种运行时中:

  • setLoggerConfig() 抛错。
  • resetLoggerConfig() 抛错。

这是有意为之,避免运行时配置与构建期裁剪策略产生漂移——否则会出现“运行时允许这条日志,但打包产物里这条日志已经不在了”这类反直觉情况。

在插件控制模式下,请通过更新插件 config 选项来修改可见性:

ts
import { loggerPlugin } from 'logaria/plugin';

export default {
  plugins: [
    loggerPlugin.vite({
      config: {
        levels: ['warn', 'error'],
      },
    }),
  ],
};

抛出的错误会指明你需要修改的插件入口,方便你在 CI 日志里快速定位。

交互行为

下方演示使用真实的 logaria 包,可以切换配置档,直观看到运行时配置如何影响输出。

Runtime logger 演示

默认可见 info、success、warn、error;debug 保持隐藏。

当前配置

null

捕获输出

运行一个场景后,这里会显示捕获到的 logger 输出。

根据 MIT 许可证发布。 (0463eff)