123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- using System.Collections;
- using System.Collections.Generic;
- using System.Text;
- using Blue;
- using LitJson;
- using UnityEngine;
- using UnityEngine.Networking;
- public interface ISendLogService : IService
- {
- /// <summary>
- /// 发送日志
- /// </summary>
- /// <param name="level">自定义参数</param>
- /// <param name="message">要发送的日志信息</param>
- void SendLog(string level, string message);
- }
- public class SendLogService : ISendLogService
- {
- private Queue<string> sendLogMessage;
- private Dictionary<string, string> requestHeader = new Dictionary<string, string>(); // header
- private BindableProperty<int> MessageCount { get; set; } = new BindableProperty<int> { Value = 0 };
- public void OnInit()
- {
- requestHeader.Add("Content-Type", "application/json");
- sendLogMessage = new Queue<string>();
- MessageCount.Register(newInt=>
- {
- PostMessage("", sendLogMessage.Dequeue());
- });
- }
- public void SendLog(string level, string message)
- {
- SendLogInfo sendHLog = new SendLogInfo();
- sendHLog.level = level;
- sendHLog.tag = Application.productName;
- sendHLog.message = message;
- string json = JsonMapper.ToJson(sendHLog);
- sendLogMessage.Enqueue(json);
- MessageCount.Value += 1;
- }
- private void PostMessage(string methodName, string jsonString)
- {
- CoroutineUtility.StartCoroutine(PostRequestTest(methodName, jsonString));
- }
- private IEnumerator PostRequestTest(string methodName, string jsonString)
- {
- string url = "https://fat2.qulivr.com/mr-navigator/v1/unity/log";
- Debug.Log(url + jsonString);
- using (UnityWebRequest webRequest = new UnityWebRequest(url, "POST"))
- {
- byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonString);
- webRequest.uploadHandler = (UploadHandler)new UploadHandlerRaw(bodyRaw);
- webRequest.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
- foreach (var v in requestHeader)
- {
- webRequest.SetRequestHeader(v.Key, v.Value);
- }
- yield return webRequest.SendWebRequest();
- if (webRequest.error != null)
- {
- Debug.LogError(webRequest.error + "\n" + webRequest.downloadHandler.text + "\n" + methodName);
- }
- else
- {
- Debug.Log(webRequest.downloadHandler.text);
- }
- }
- }
- }
|