跳转到内容

API 参考

本页列出 Logaria 全部公开入口。它以源码导出为准——不包含设想中的 API,不包含别名——因此会随包演进保持准确。

教学与用法示例请见 快速开始 与各专题指南。本页是规格说明。

logaria

根入口。在持有默认作用域的应用、脚本、包中使用它。

ts
import { createLogger, resetLoggerConfig, setLoggerConfig } from 'logaria';
API签名说明
createLogger(options: { main: string }) => Logger在默认作用域中创建或复用主日志器。打日志前请先调用 .getLoggerByGroup(group)
setLoggerConfig(config: LoggerConfig) => void在直接(非插件)模式下设置默认运行时配置。受插件控制时抛错。
resetLoggerConfig() => void在直接(非插件)模式下清空默认运行时配置。受插件控制时抛错。

根入口不导出resolveLoggerConfig,需要时请从 logaria/core 引入。

日志器对象

createLoggercreateScopedLogger 返回的日志器拥有相同接口:

ts
const logger = createLogger({ main: '@acme/docs' }).getLoggerByGroup('build');

logger.info('message');
logger.success('message');
logger.warn('message');
logger.error('message');
logger.debug('message');

infosuccesswarnerror 接受可选的耗时选项:

ts
logger.info('finished', { elapsedTimeMs: 12.34 });

debug 只接受消息——让诊断输出保持轻量。

logaria/helper

无运行时配置依赖的纯函数辅助工具:计时与错误格式化。

ts
import { createElapsedTimer, formatDebugMessage, formatErrorMessage } from 'logaria/helper';
API签名说明
createElapsedTimer() => () => { elapsedTimeMs: number }创建一个适合传给日志器耗时选项的计时函数。
formatDebugMessage(options: DebugMessageOptions) => string格式化结构化的 debug 上下文、决策、摘要与耗时字段。
formatErrorMessage(error: unknown) => string把任意抛出值转为可读字符串。

createElapsedLogOptionsformatElapsedTime 是内部模块导出,属于 logaria/helper 包入口。

logaria/plugin

通用打包工具适配器与配套常量。

ts
import { loggerPlugin, transformLoggerTreeShaking } from 'logaria/plugin';
API说明
loggerPlugin通用 unplugin 适配器:.vite.rollup.rolldown.esbuild.webpack.rspack.farm
transformLoggerTreeShaking测试与高级工具链使用的直接转换辅助函数。
DEFAULT_LOGGER_MODULE_ID转换使用的公开日志器模块 ID。
LOGGER_TREE_SHAKING_PLUGIN_NAME转换插件名称。

绝大多数应用只需要 loggerPlugin。用法见 构建插件

LoggerPluginOptions

ts
interface LoggerPluginOptions {
  config?: LoggerConfig | null;
  treeshake?: boolean;
}
字段默认值含义
confignull注入到打包产物的运行时 LoggerConfig。省略时使用默认策略。
treeshakefalse设为 true 启用构建期裁剪。dev 与 watch 模式无效。

logaria/core

宿主集成与工具链使用的作用域 API。

ts
import {
  createScopedLogger,
  getScopedLoggerConfig,
  resetScopedLoggerConfig,
  resolveLoggerConfig,
  setScopedLoggerConfig,
  shouldSuppressLog,
} from 'logaria/core';
API签名说明
createScopedLogger(options: { main: string }, scopeId: string) => Logger在已注册的显式作用域中创建或复用日志器。
getScopedLoggerConfig(scopeId: string) => LoggerConfig | undefined读取某个作用域的原始配置。
setScopedLoggerConfig(scopeId: string, config: LoggerConfig) => void注册或更新一个显式作用域。
resetScopedLoggerConfig(scopeId: string) => void删除某个作用域的配置。
shouldSuppressLog(kind, context, scopeId?) => boolean返回某条日志是否应被隐藏。
resolveLoggerConfig(config: LoggerConfig) => NormalizedLoggerConfig校验并归一化宿主包接受的公共配置。

用法详见 作用域集成

logaria/core/helper

ts
import { DEFAULT_LOGGER_SCOPE_ID, createLoggerScopeId } from 'logaria/core/helper';
API说明
DEFAULT_LOGGER_SCOPE_ID暴露给宿主集成使用的内部默认作用域 ID。
createLoggerScopeId为显式作用域归属生成唯一字符串。

logaria/types

公开 TypeScript 类型——编写预设、接受用户配置或扩展 Logaria 时使用它们。

ts
import type {
  LoggerConfig,
  LoggerPresetPlugin,
  LoggerVisibilityLevel,
  LogKind,
} from 'logaria/types';

types 入口暴露运行时配置、规则、日志器、插件与转换结果类型。常用类型:

类型用法
LoggerConfigsetLoggerConfigloggerPlugin、作用域 API 接受的形态——见 核心概念
LoggerPresetPlugin预设作者入口——见 规则与预设
LoggerVisibilityLevel允许的级别字符串联合:'error' | 'warn' | 'info' | 'success'
LogKind所有日志类型的联合:可见性级别加 'debug'
DebugMessageOptionsformatDebugMessage 的入参形态。
Logger / ScopedLoggercreateLogger / .getLoggerByGroup 返回的日志器形态。

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