wxr
2023-06-14 313e9339114e672eb2b281ee323f9f480f980679
HDL-ON_Android/Aliyu/AliyuLogUtil.cs
New file
@@ -0,0 +1,105 @@
using System;
using Android.Content;
using Com.Aliyun.Sls.Android.Producer;
namespace HDL_ON_Android.Aliyu
{
    public class AliyuLogUtil
    {
        private static AliyuLogProducerClient exceptionProducerClient;
        private static LogBean logBean;
        private static AliyuLogProducerClient getExceptionProducerClient()
        {
            lock (exceptionProducerClient)
            {
                if (exceptionProducerClient == null)
                {
                    if (Shared.Application.Activity == null) {
                        return null;
                    }
                    exceptionProducerClient = new AliyuLogProducerClient(Shared.Application.Activity, "https://cn-hangzhou.log.aliyuncs.com", "log", "event_tracking", "LTAI5tLzDxrtsFyi3xtK3YWt", "eX31JZrRAvC2wZWPiZU0SYhlfAUMoT", null, null);
                    exceptionProducerClient.initProducer();
                }
                return exceptionProducerClient;
            }
        }
        /**
         * 异常日志
         *
         * @param title    标题
         * @param content  附加数据内容
         * @param level    报警等级
         */
        public static void log(string title, string content, Level level)
        {
            log(title, content, level, null);
        }
        /**
         * 异常日志
         *
         * @param title    标题
         * @param content  附加数据内容
         * @param otherMsg 其他附加数据,没有可为空
         * @param level    报警等级
         * @param type 异常类型
         */
        public static void log(string title, string content, Level level, string type)
        {
            log(title, content, level, null, null);
        }
        /**
         * 异常日志
         *
         * @param title    标题
         * @param content  附加数据内容
         * @param otherMsg 其他附加数据,没有可为空
         * @param level    报警等级
         * @param type 异常类型
         * @param exceptionBlock 异常代码块
         */
        public static void log(string title, string content, Level level, string type, string exceptionBlock)
        {
            /**
             * 没有homeId和userId  不允许上传   只上传住宅里面的异常  减少云端压力
             * 1.点击项目的时候设置
             * 2.关闭住宅页面的时候去掉
             */
            if (string.IsNullOrEmpty(getLogBean.getUserId()) || string.IsNullOrEmpty(getLogBean.getHomeId()))
            {
                return;
            }
            Log log = new Log();
            log.PutContent("title", title);
            log.PutContent("content", content);
            log.PutContent("level", level.ToString());
            log.PutContent("userId", getLogBean.getUserId());
            log.PutContent("homeId", getLogBean.getHomeId());
            log.PutContent("time", System.DateTime.UtcNow + "");
            log.PutContent("userAgent", getLogBean.getUserAgent());
            log.PutContent("appVersion", getLogBean.getAppVersion());
            log.PutContent("type", type);
            log.PutContent("exceptionBlock", exceptionBlock);
            var producerClient = getExceptionProducerClient();
            if (producerClient == null)
            {
                return;
            }
            producerClient.sendLog(log);
        }
        public static LogBean getLogBean
        {
            get {
                if (logBean == null) {
                    logBean = new LogBean();
                }
                return logBean;
            }
        }
    }
}