- 在多个工具类中添加私有构造函数,防止实例化 -这种设计模式确保了工具类的静态方法和属性的正确使用 - 受影响的主要类包括: - AlgorithmHelper - AppStorageHelper - LogHelper - PreferencesHelper - SZYXLocalStorageHelper - SZYXLocalStorageKeys - TimeHelper - ToolsHelper - ToolsHelperForTS - ValidatorHelper - WindowHelper - XWebHelper
135 行
3.5 KiB
Plaintext
135 行
3.5 KiB
Plaintext
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}`);
|
||
}
|
||
}
|
||
}
|