日志工具

Logger

日志类,提供分级别日志输出,支持自定义配置和自定义处理函数。

ts
declare class Logger {
  constructor(config?: Partial<LoggerConfig>)
  setConfig(config: Partial<LoggerConfig>): this
  getConfig(): LoggerConfig
  debug(message: string, ...args: any[]): void
  info(message: string, ...args: any[]): void
  warn(message: string, ...args: any[]): void
  error(message: string, ...args: any[]): void
}

LoggerConfig 配置

属性类型说明
levelLogLevel日志级别,低于此级别的日志不会输出
includeSourceInfoboolean是否在日志中显示源代码位置信息
prefixstring日志前缀
handler(level, message, args, source) => void自定义日志处理函数

LogLevel 枚举

名称说明
0DEBUG调试级别
1INFO信息级别
2WARN警告级别
3ERROR错误级别

logger

Vitarx 框架内置的日志实例,前缀为 Vitarx

ts
declare const logger: Logger

示例

tsx
import { logger, LogLevel } from 'vitarx'

// 使用内置 logger
logger.debug('调试信息')
logger.info('普通信息')
logger.warn('警告信息')
logger.error('错误信息')

// 修改日志级别(只输出 WARN 及以上)
logger.setConfig({ level: LogLevel.WARN })

// 自定义日志处理
logger.setConfig({
  handler: (level, message, args, source) => {
    // 将日志发送到远程服务
    sendToLogService({ level, message, args, source })
  }
})

getStackTrace

获取当前调用栈的字符串表示。

ts
declare function getStackTrace(skip?: number): string
参数类型默认值说明
skipnumber1要跳过的堆栈帧数量
tsx
import { getStackTrace } from 'vitarx'

function foo() {
  console.log(getStackTrace())
}

foo()
// 输出调用栈信息

getCallSource

获取调用者的源文件信息(文件名、行号、列号)。

ts
declare function getCallSource(): CodeSource

返回值{ fileName: string, lineNumber: number, columnNumber: number }

tsx
import { getCallSource } from 'vitarx'

function trackCall() {
  const source = getCallSource()
  console.log(`调用来自 #123;source.fileName}:#123;source.lineNumber}`)
}