Unity BesHttp插件修改Error log的格式

实现代码

找到插件的 UnityOutput.cs 然后按照需求替换为下面的代码即可。如果提示 void ILogOutput.Flush() { } 接口不存在,删除这行代码即可。

using Best.HTTP.JSON.LitJson;
using System;
using System.Collections.Generic;
using UnityEngine;
using System.Text.RegularExpressions;namespace Best.HTTP.Shared.Logger
{/// <summary>/// Provides an implementation of <see cref="ILogOutput"/> that writes log messages to the Unity Debug Console./// </summary>public sealed class UnityOutput : ILogOutput{/// <summary>/// 文件url 字符的颜色/// </summary>public string _Color = "FFA500";/// <summary>/// Gets a value indicating whether this log output accepts color codes./// </summary>/// <remarks>/// This property returns <c>true</c> when running in the Unity Editor and <c>false</c> otherwise./// </remarks>public bool AcceptColor { get; } = UnityEngine.Application.isEditor;/// <summary>/// Writes a log message to the Unity Debug Console based on the specified log level./// </summary>/// <param name="level">The log level of the message.</param>/// <param name="logEntry">The log message to write.</param>public void Write(Loglevels level, string logEntry){switch (level){case Loglevels.All:case Loglevels.Information:UnityEngine.Debug.Log(logEntry);break;case Loglevels.Warning:UnityEngine.Debug.LogWarning(logEntry);break;case Loglevels.Error:case Loglevels.Exception:var errorLog = JsonMapper.ToObject<ErrorLog>(logEntry);// 处理路径信息并修改颜色string processedStack = ProcessStack(errorLog.stack);string processedExStack = ProcessStack(errorLog.ex[0].stack);// 重新构建日志条目logEntry = $"[{errorLog.ll}] {errorLog.msg}\n" +$"Stack: {processedStack}\n" +$"Exception: {errorLog.ex[0].msg}\n" +$"Exception Stack: {processedExStack}";UnityEngine.Debug.LogError(logEntry);break;}}/// <summary>/// This implementation does nothing./// </summary>void ILogOutput.Flush() { }void IDisposable.Dispose() => GC.SuppressFinalize(this);/// <summary>/// 修改内容,将url换成可以点击,并修改颜色/// </summary>/// <param name="stack"></param>/// <returns></returns>private string ProcessStack(string stack){// 使用正则表达式匹配路径信息string pattern = @"([A-Z]:\\[^:]+:\d+)";string replacement = $"<color=#{_Color}>$1</color>";// 替换路径信息为蓝色string processedStack = Regex.Replace(stack, pattern, replacement);// 替换换行符processedStack = processedStack.Replace("\r\n", "\n");return processedStack;}}[SerializeField]public class ErrorLog{/// <summary>/// /// </summary>public int tid;/// <summary>/// /// </summary>public string div;/// <summary>/// /// </summary>public string msg;/// <summary>/// /// </summary>public List<ExItem> ex;/// <summary>/// /// </summary>public string stack;/// <summary>/// /// </summary>public List<CtxsItem> ctxs;/// <summary>/// /// </summary>public long t;/// <summary>/// /// </summary>public string ll;/// <summary>/// /// </summary>public long bh;}[SerializeField]public class ExItem{public string msg;public string stack;}[SerializeField]public class CtxsItem{public string TypeName;public long Hash;}}

功能描述

besthttp 自身的错误日志打印:
在这里插入图片描述

替换为上面的代码之后的日志打印是:
修改颜色是修改:_Color

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/58774.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python热化学固态化学模型模拟

&#x1f3af;要点 使用热化学方式&#xff0c;从材料项目数据库获得热力学数据构建固态材料无机合成模拟模型。固态反应网络是热力学相空间的模型&#xff0c;使得能够纳入简单的反应动力学行为。反应坐标图可视为加权有向图&#xff0c;其表示出热力学相空间的密集连接模型。…

详解软件设计中分库分表的几种实现以及应用示例

详解软件设计中分库分表的几种实现以及应用示例https://mp.weixin.qq.com/s?__bizMzkzMTY0Mjc0Ng&mid2247485108&idx1&sn8b3b803c120c163092c70fa65fe5541e&chksmc266aaa1f51123b7af4d7a3113fe7c25daa938a04ced949fb71a8b7773e861fb93d907435386#rd

简缩极化模型+简缩极化求解用优化的方法,也需要保证方程和未知数个数

一个定标器可以得到一个复数矢量&#xff0c;4个实数方程 而模型中我们有&#xff0c;每个定标器有不同的A和φ (两个实数)和相同的R和δc &#xff08;4个复数&#xff09;

多浏览器同步测试工具的设计与实现

在做Web兼容测试时&#xff0c;测试人员往往需要在不同浏览器上重复执行相同的操作。 现有自动化录制手段&#xff0c;其实是后置的对比&#xff0c;效率与反馈都存在延迟&#xff0c;执行过程相对是黑盒的&#xff0c;过程中如果测试人员没细化到具体的校验点&#xff0c;即使…

Google Recaptcha V2 简单使用

最新的版本是v3&#xff0c;但是一直习惯用v2&#xff0c;就记录一下v2 的简单用法&#xff0c;以免将来忘记了 首先在这里注册你域名&#xff0c;如果是本机可以直接直接填 localhost 或127.0.0.1 https://www.google.com/recaptcha/about/ 这是列子 网站密钥&#xff1a;是…

【初识Linux】

寻不到花的折翼枯叶蝶&#xff0c;永远也看不见凋谢............................................................................. 文章目录 前言 一、【基本指令】 1、ls 2、pwd 3、cd 4. touch 5.mkdir 6.rmdir 7、rm 8.man 9.cp 10、mv 11、cat 12、tac 13、more 14、le…

操作系统知识要点

一.操作系统的特性 1.并发性 在多道程序环境下&#xff0c;并发性是指在一段时间内&#xff0c;宏观上有多个程序同时运行&#xff0c;但实际上在单CPU的运行环境&#xff0c;每一个时刻只有一个程序在执行。 因此&#xff0c;从微观上来说&#xff0c;各个程序是交替、轮流…

jenkins搭建及流水线配置

1.安装docker curl https://mirrors.aliyun.com/repo/Centos-7.repo >> CentOS-Base-Aliyun.repomv CentOS-Base-Aliyun.repo /etc/yum.repos.d/yum -y install yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/…

混沌接口压测利器Fortio:从TCP/UDP到gRPC,全方位覆盖云原生应用性能测试

#作者&#xff1a; 西门吹雪 文章目录 Fortio 安装docker 安装:MacOS安装&#xff1a;linux安装:对于http负载生成最重要的标志:Fortio server 功能 TCPUDPgRPC负载测试gRPC 负载测试在k8s或者容器中使用fortio进行压测fortio 直接在docker中作为sidecar使用 Fortio是一个微服…

【笔记】数据结构与算法

参考链接&#xff1a;数据结构(全) 参考链接&#xff1a;数据结构与算法学习笔记 一些PPT的整理&#xff0c;思路很不错&#xff0c;主要是理解角度吧&#xff0c;自己干啃书的时候结合一下会比较不错 0.总论 1.数据 注&#xff1a;图是一种数据结构&#xff01;&#xff01;…

leetcode - 684. 冗余连接

684. 冗余连接 解决思路 大致上的思路就是将元素加入到 并查集 中&#xff0c;那么在遍历到边的时候先去判断的边的两个端点的 根节点 是否相等&#xff0c;如果相等&#xff0c;那么就代表此刻把这条边加上去就形成了环【可以这么理解&#xff0c;如果形成了环&#xff0c;那…

【力扣打卡系列】二叉树·灵活运用递归

坚持按题型打卡&刷&梳理力扣算法题系列&#xff0c;语言为go&#xff0c;Day16 相同的树 题目描述 解题思路 边界条件&#xff0c;其中一个节点为空&#xff0c;return 只有p和q均为空才返回true&#xff0c;因此可以简写为pqreturn&#xff0c;先判断节点值是否一样&…

创建一个基于SSM框架的药品商超管理系统

创建一个基于SSM&#xff08;Spring Spring MVC MyBatis&#xff09;框架的药品商超管理系统是一个涉及多个步骤的过程。以下是一个详细的开发指南&#xff0c;包括项目结构、数据库设计、配置文件、Mapper接口、Service层、Controller层和前端页面的示例。 1. 需求分析 明…

二十七、Python基础语法(面向对象-上)

面向对象&#xff08;oop&#xff09;&#xff1a;是一种程序设计的方法&#xff0c;面向对象关注的是结果。 一、类和对象 类和对象&#xff1a;是面向对象编程中非常重要的两个概念。 类&#xff1a;具有相同特征或者行为的一类事物&#xff08;指多个&#xff09;的统称&…

UML图之对象图详解

~犬&#x1f4f0;余~ “我欲贱而贵&#xff0c;愚而智&#xff0c;贫而富&#xff0c;可乎&#xff1f; 曰&#xff1a;其唯学乎” 零、什么是对象图 对象图&#xff08;Object Diagram&#xff09;是UML中一种重要的静态结构图&#xff0c;它用于表示在特定时间点上系统中的对…

同三维T80004EHH-4K30W 4K超清HDMI编解码器

1路HDMI输入1路3.5音频输入&#xff0c;1路HDMI输出1路3.5音频输出&#xff0c;1个USB1个TF卡槽&#xff0c;带RS485 支持4K30&#xff0c;支持2路解码2路转码&#xff0c;可选配WEBRTC/NDI协议&#xff0c;可选配硬件WEBRTC解码&#xff0c;编码、解码、转码、导播、录制多功…

设计一个灵活的RPC架构

RPC架构 RPC本质上就是一个远程调用&#xff0c;需要通过网络来传输数据。传输协议可以有多种选择&#xff0c;但考虑到可靠性&#xff0c;一般默认采用TCP协议。为了屏蔽网络传输的复杂性&#xff0c;需要封装一个单独的数据传输模块用来收发二进制数据&#xff0c;这个单独模…

网络安全入门学习路线 怎样科学的进行网络安全学习

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面…

“中信同业+”焕新升级 锚定数字金融新主线,做实金融“五篇大文章”

9月20日&#xff0c;“中信同业”升级发布会及生物多样性债券指数发布在京顺利举办&#xff0c;此次活动以“做强数字金融 服务实体经济”为主题&#xff0c;由中信金控指导&#xff0c;中信银行主办&#xff0c;中信各金融子公司联合承办。来自银行、证券、保险、基金等行业百…

ELK之路第四步——整合!打通任督二脉

ELK之路第四步——整合&#xff01;打通任督二脉 前言1.架构2.下载资源3.整合开始1.分别启动三个es2.启动kibana3.新建filebeat_logstash.yml配置文件4.修改logstash的启动配置文件5.启动logstash6.启动filebeat7.Kibana查看 4.结语 前言 在开始本篇之前&#xff0c;你需要用到…