import hilog from '@ohos.hilog' import { BusinessError } from '@kit.BasicServicesKit' const LOGGER_DOMAIN: number = 0x0000 const LOGGER_TAG: string = '=====》' export class LogHelper { private constructor() { } private static domain: number = LOGGER_DOMAIN private static tag: string = LOGGER_TAG //日志Tag private static format: string = '%{public}s' private static showLog: boolean = true //是否显示打印日志 /** * 初始化日志参数(该方法建议在Ability里调用) * @param domain * @param tag * @param showLog */ static init(domain: number = LOGGER_DOMAIN, tag: string = LOGGER_TAG, showLog: boolean = true) { LogHelper.domain = domain LogHelper.tag = tag LogHelper.showLog = showLog } /** * 设置日志对应的领域标识,范围是0x0~0xFFFF。(该方法建议在Ability里调用) * @param domain */ static setDomain(domain: number = LOGGER_DOMAIN) { LogHelper.domain = domain } /** * 设置日志标识(该方法建议在Ability里调用) * @param tag */ static setTag(tag: string = LOGGER_TAG) { LogHelper.tag = tag } /** * 是否打印日志(该方法建议在Ability里调用) * @param showLog */ static setShowLog(showLog: boolean = true) { LogHelper.showLog = showLog } /** * 打印DEBUG级别日志 * @param args */ static debug(...args: string[]): void { if (LogHelper.showLog) { hilog.debug(LogHelper.domain, LogHelper.tag, ' ') hilog.debug(LogHelper.domain, LogHelper.tag, LogHelper.format.repeat(args.length), args) } } /** * 打印INFO级别日志 * @param args */ static info(...args: string[]): void { if (LogHelper.showLog) { hilog.info(LogHelper.domain, LogHelper.tag, ' ') hilog.info(LogHelper.domain, LogHelper.tag, LogHelper.format.repeat(args.length), args) } } /** * 打印WARN级别日志 * @param args */ static warn(...args: string[]): void { if (LogHelper.showLog) { hilog.warn(LogHelper.domain, LogHelper.tag, ' ') hilog.warn(LogHelper.domain, LogHelper.tag, LogHelper.format.repeat(args.length), args) } } /** * 打印ERROR级别日志 * @param args */ static error(...args: string[]): void { if (LogHelper.showLog) { hilog.error(LogHelper.domain, LogHelper.tag, ' ') hilog.error(LogHelper.domain, LogHelper.tag, LogHelper.format.repeat(args.length), args) } } /** * 打印FATAL级别日志 * @param args */ static fatal(...args: string[]): void { if (LogHelper.showLog) { hilog.fatal(LogHelper.domain, LogHelper.tag, ' ') hilog.fatal(LogHelper.domain, LogHelper.tag, LogHelper.format.repeat(args.length), args) } } /** * 打印JSON对象和JSON字符串 * @param obj */ static print(obj: object | string) { try { console.debug('') if (typeof obj === 'object') { let str = JSON.stringify(obj, null, 2) let arr: string[] = str.split('\n') for (let index = 0; index < arr.length; index++) { console.debug(arr[index]) } } else { obj = JSON.parse(obj) let str = JSON.stringify(obj, null, 2) let arr = str.split('\n') for (let index = 0; index < arr.length; index++) { console.debug(arr[index]) } } } catch (err) { let error = err as BusinessError; //异常了,说明不是JSON字符串 LogHelper.error(`LogHelper-print-异常 ~ code: ${error.code} -·- message: ${error.message}`); } } }