美文网首页
Harmony 鸿蒙 HiLog 使用

Harmony 鸿蒙 HiLog 使用

作者: _发强 | 来源:发表于2021-11-06 16:46 被阅读0次

    先上效果图

    格式: domain/[类名:代码行数]-> [方法名]: [输出内容]
    image.png
    • domain: HiLogLabel 中配置的 domain参数,

    直接上代码:

    public class HLog {
        private static final boolean logEnable = BuildConfig.DEBUG;
        private static final String TAG = "";
    
        public static void d(String msg) {
            d(TAG, msg);
        }
    
        public static void d(String TAG, String msg) {
            if (logEnable) {
                HiLog.debug(hLogLabel(TAG), msg);
            }
        }
    
        public static void e(String msg) {
            e(TAG, msg);
        }
    
        public static void e(String TAG, String msg) {
            if (logEnable) {
                HiLog.error(hLogLabel(TAG), msg);
            }
        }
    
        public static void i(String msg) {
            i(TAG, msg);
        }
    
        public static void i(String TAG, String msg) {
            if (logEnable) {
                HiLog.info(hLogLabel(TAG), msg);
            }
        }
    
        public static void w(String msg) {
            w(TAG, msg);
        }
    
        public static void w(String TAG, String msg) {
            if (logEnable) {
                HiLog.warn(hLogLabel(TAG), msg);
            }
        }
    
        private static HiLogLabel hLogLabel(String TAG) {
            return new HiLogLabel(HiLog.LOG_APP, 0x00201, generateTempTag(TAG));
        }
    
        private static String generateTempTag(String tag) {
            if (TextUtils.isEmpty(tag)) {
                return getDefaultTag();
            } else {
                return getDefaultTag() + ", " + tag;
            }
        }
    
        private static String getDefaultTag() {
            StackTraceElement[] elements = new Throwable().getStackTrace();
            StackTraceElement element = null;
            for (int i = 2; i < elements.length; i++) {  // 这里的 i 起始值可以写 0,主要是下面的if 判断,目的是为了获取调用 Log 的地方
                if (elements[i].getClassName().equals(HLog.class.getName())) {
                    element = elements[i + 1];
                }
            }
            if (element != null) {
                return "(" + element.getFileName() + ":" + element.getLineNumber() + ")->" + element.getMethodName();
            }
            return "HLog";
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:Harmony 鸿蒙 HiLog 使用

          本文链接:https://www.haomeiwen.com/subject/asyjzltx.html