1. 基本使用
HiLog 中定义了 DEBUG、INFO、WARN、ERROR、FATAL 五种日志级别
function debug(domain: number, tag: string, format: string, ...args: any[]): void;
function info(domain: number, tag: string, format: string, ...args: any[]): void;
function warn(domain: number, tag: string, format: string, ...args: any[]): void;
function error(domain: number, tag: string, format: string, ...args: any[]): void;
function fatal(domain: number, tag: string, format: string, ...args: any[]): void;
function isLoggable(domain: number, tag: string, level: LogLevel): boolean;
- 参数 domain:用于指定输出日志所对应的业务领域,取值范围为 0x0000~0xFFFF,开发者可以根据需要进行自定义。
- 参数 tag:用于指定日志标识,可以为任意字符串,建议标识调用所在的类或者业务行为。
- 参数 format:格式字符串,用于日志的格式化输出。 %{public}s 字符串 %{public}d 数字
- 参数 args:可以为0个或多个参数,可以为 0个或多个参数,是格式字符串中参数类型对应的参数列表。
2. 日志工具类封装 Logger
// 使用 hilog 封装 Logger
import { hilog } from '@kit.PerformanceAnalysisKit'
class Logger {
private domain: number // 十六进制格式的输出业务格式
private tag: string // 指定的标识 (自动的标识)
private format: string = '%{public}s, %{public}s' // 格式化方式
constructor(domain: number, tag: string) {
this.domain = domain
this.tag = tag
}
// 调试
debug(...args: string[]) {
this.formatArg(args)
hilog.debug(this.domain, this.tag, this.format, args)
}
// 输出
info(...args: string[]) {
this.formatArg(args)
hilog.info(this.domain, this.tag, this.format, args)
}
// 错误
error(...args: string[]) {
this.formatArg(args)
hilog.error(this.domain, this.tag, this.format, args)
}
// 警告
warn(...args: string[]) {
this.formatArg(args)
hilog.warn(this.domain, this.tag, this.format, args)
}
// 优化字符显示状态
private formatArg(args: string[]) {
this.format = args.length > 1 ? '%{public}s, %{public}s' : '%{public}s'
}
}
// 导出 logger实例化对象
export const logger = new Logger(0x2004, 'wannaLog')
console 和 hilog 对比
- console 是基本 hilog 的封装 默认的 domian, tag 分别为 A03d00, JSAPP
- hilog 比 console 更高级一些, 更详细的格式化, 过滤等日志信息功能, 更加丰富一下, 可以满足更复杂的应用需求