LogHelper.ets 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. import hilog from '@ohos.hilog'
  2. import { BusinessError } from '@kit.BasicServicesKit'
  3. const LOGGER_DOMAIN: number = 0x0000
  4. const LOGGER_TAG: string = '=====》'
  5. export class LogHelper {
  6. private constructor() {
  7. }
  8. private static domain: number = LOGGER_DOMAIN
  9. private static tag: string = LOGGER_TAG //日志Tag
  10. private static format: string = '%{public}s'
  11. private static showLog: boolean = true //是否显示打印日志
  12. /**
  13. * 初始化日志参数(该方法建议在Ability里调用)
  14. * @param domain
  15. * @param tag
  16. * @param showLog
  17. */
  18. static init(domain: number = LOGGER_DOMAIN, tag: string = LOGGER_TAG, showLog: boolean = true) {
  19. LogHelper.domain = domain
  20. LogHelper.tag = tag
  21. LogHelper.showLog = showLog
  22. }
  23. /**
  24. * 设置日志对应的领域标识,范围是0x0~0xFFFF。(该方法建议在Ability里调用)
  25. * @param domain
  26. */
  27. static setDomain(domain: number = LOGGER_DOMAIN) {
  28. LogHelper.domain = domain
  29. }
  30. /**
  31. * 设置日志标识(该方法建议在Ability里调用)
  32. * @param tag
  33. */
  34. static setTag(tag: string = LOGGER_TAG) {
  35. LogHelper.tag = tag
  36. }
  37. /**
  38. * 是否打印日志(该方法建议在Ability里调用)
  39. * @param showLog
  40. */
  41. static setShowLog(showLog: boolean = true) {
  42. LogHelper.showLog = showLog
  43. }
  44. /**
  45. * 打印DEBUG级别日志
  46. * @param args
  47. */
  48. static debug(...args: string[]): void {
  49. if (LogHelper.showLog) {
  50. hilog.debug(LogHelper.domain, LogHelper.tag, ' ')
  51. hilog.debug(LogHelper.domain, LogHelper.tag, LogHelper.format.repeat(args.length), args)
  52. }
  53. }
  54. /**
  55. * 打印INFO级别日志
  56. * @param args
  57. */
  58. static info(...args: string[]): void {
  59. if (LogHelper.showLog) {
  60. hilog.info(LogHelper.domain, LogHelper.tag, ' ')
  61. hilog.info(LogHelper.domain, LogHelper.tag, LogHelper.format.repeat(args.length), args)
  62. }
  63. }
  64. /**
  65. * 打印WARN级别日志
  66. * @param args
  67. */
  68. static warn(...args: string[]): void {
  69. if (LogHelper.showLog) {
  70. hilog.warn(LogHelper.domain, LogHelper.tag, ' ')
  71. hilog.warn(LogHelper.domain, LogHelper.tag, LogHelper.format.repeat(args.length), args)
  72. }
  73. }
  74. /**
  75. * 打印ERROR级别日志
  76. * @param args
  77. */
  78. static error(...args: string[]): void {
  79. if (LogHelper.showLog) {
  80. hilog.error(LogHelper.domain, LogHelper.tag, ' ')
  81. hilog.error(LogHelper.domain, LogHelper.tag, LogHelper.format.repeat(args.length), args)
  82. }
  83. }
  84. /**
  85. * 打印FATAL级别日志
  86. * @param args
  87. */
  88. static fatal(...args: string[]): void {
  89. if (LogHelper.showLog) {
  90. hilog.fatal(LogHelper.domain, LogHelper.tag, ' ')
  91. hilog.fatal(LogHelper.domain, LogHelper.tag, LogHelper.format.repeat(args.length), args)
  92. }
  93. }
  94. /**
  95. * 打印JSON对象和JSON字符串
  96. * @param obj
  97. */
  98. static print(obj: object | string) {
  99. try {
  100. console.debug('')
  101. if (typeof obj === 'object') {
  102. let str = JSON.stringify(obj, null, 2)
  103. let arr: string[] = str.split('\n')
  104. for (let index = 0; index < arr.length; index++) {
  105. console.debug(arr[index])
  106. }
  107. } else {
  108. obj = JSON.parse(obj)
  109. let str = JSON.stringify(obj, null, 2)
  110. let arr = str.split('\n')
  111. for (let index = 0; index < arr.length; index++) {
  112. console.debug(arr[index])
  113. }
  114. }
  115. } catch (err) {
  116. let error = err as BusinessError; //异常了,说明不是JSON字符串
  117. LogHelper.error(`LogHelper-print-异常 ~ code: ${error.code} -·- message: ${error.message}`);
  118. }
  119. }
  120. }