跨环境统一日志系统,在浏览器中使用 CSS %c 彩色输出,在 Node.js / SSR 中使用 ANSI 转义码彩色输出,支持级别控制、样式定制与单次调用覆盖。
trace < debug < info < warn < error < fatal < system,可配置最低输出级别LogStyle.style({...}) 作为最后一个参数传入,仅对该次调用生效open: false 全局关闭输出,无需删除日志语句pnpm add @iap/logger
import { logger, setLoggerConfig } from '@iap/logger'
// 全局配置
setLoggerConfig({ serviceName: 'App', level: 'info' })
// 基础用法
logger.info('服务启动成功')
logger.warn('接口响应较慢', { latency: '800ms' })
logger.error('请求失败', new Error('timeout'))
logger.fatal('不可恢复的严重错误')
logger.system('构建完成')
logger默认日志实例,所有方法支持任意数量的参数。
| 方法 | 对应 console | 说明 |
|---|---|---|
logger.info(...args) |
console.info |
常规运行信息 |
logger.warn(...args) |
console.warn |
潜在问题警告 |
logger.error(...args) |
console.error |
一般错误,不中断程序 |
logger.fatal(...args) |
console.error |
严重错误 |
logger.system(...args) |
console.log |
系统级常驻打印 |
setLoggerConfig(options)对全局配置进行浅合并更新,levelStyles 也做浅合并。
import { setLoggerConfig } from '@iap/logger'
setLoggerConfig({
level: 'warn', // 最低输出级别
serviceName: 'Auth', // 每条日志的前缀标识
open: false, // 全局关闭输出
})
setLevelStyle(level, style)单独更新某个级别的默认样式,不影响其他级别。
import { setLevelStyle } from '@iap/logger'
setLevelStyle('error', { label: { color: 'red', bold: true } })
LogStyle.style(style) — 单次调用样式覆盖作为最后一个参数传入任意日志方法,仅对该次调用覆盖样式。
import { logger, LogStyle } from '@iap/logger'
logger.info(
'转账成功',
LogStyle.style({
label: { color: '#00c853', bold: true },
content: { color: '#2db7f5' },
}),
)
loggerOptions当前全局配置对象(可读,修改请使用 setLoggerConfig)。
trace(0) < debug(1) < info(2) < warn(3) < error(4) < fatal(5) < system(6)
只有级别 ≥ 配置 level 的日志才会输出。system 始终具有最高优先级。
import type {
Logger,
LoggerOptions,
Level,
LevelStyle,
LevelStyles,
StructuredStyle,
} from '@iap/logger'