UNPKG

@gulibs/react-vintl

Version:

Type-safe i18n library for React with Vite plugin and automatic type inference

79 lines 2.52 kB
/** * Logger 工具 * 在生产环境下禁用 debug 和 warn 输出 * * 日志去重机制: * - 默认启用去重功能,相同消息在时间窗口内(默认 5 秒)只输出一次 * - 使用消息内容的序列化字符串作为去重键 * - 自动清理过期的去重缓存条目,避免内存泄漏 * - 错误日志使用更长的去重时间窗口(10 秒),确保重要错误不被过度抑制 * - 可通过配置禁用去重:`logger.setConfig({ deduplicate: false })` */ interface LoggerConfig { /** 是否启用 debug 日志 */ debug?: boolean; /** 是否启用 info 日志 */ info?: boolean; /** 是否启用 warn 日志 */ warn?: boolean; /** 是否启用 error 日志 */ error?: boolean; /** 是否启用日志去重(默认 true) */ deduplicate?: boolean; /** 去重时间窗口(毫秒,默认 5000) */ deduplicationWindow?: number; } declare class Logger { private config; private deduplicationCache; constructor(config?: LoggerConfig); /** * 检查消息是否应该被去重 * @param messageKey 消息的唯一标识(通常是序列化后的参数) * @returns true 如果消息应该被输出,false 如果应该被抑制 */ private shouldLog; /** * 清理过期的去重缓存条目 */ private cleanupDeduplicationCache; /** * 生成消息的唯一键(用于去重) */ private getMessageKey; /** * 输出 debug 日志(仅在开发环境) */ debug(...args: unknown[]): void; /** * 输出 info 日志(仅在开发环境) * 用于一般信息日志,不同于 debug */ info(...args: unknown[]): void; /** * 输出 warn 日志(仅在开发环境) * 支持去重机制,相同消息在时间窗口内只输出一次 */ warn(...args: unknown[]): void; /** * 输出 error 日志(始终输出) * 错误日志使用更长的去重时间窗口(10秒),确保重要错误不会被过度抑制 */ error(...args: unknown[]): void; /** * 更新配置 */ setConfig(config: Partial<LoggerConfig>): void; /** * 清除去重缓存(用于测试或重置) */ clearDeduplicationCache(): void; /** * 获取当前配置 */ getConfig(): Readonly<Required<LoggerConfig>>; } export declare const logger: Logger; export { Logger }; export type { LoggerConfig }; //# sourceMappingURL=logger.d.ts.map