protected void AddLog(object msg, Enum_LogType logType = Enum_LogType.Inf, Enum_LogTag tag = Enum_LogTag.All, bool isProtoMsg = false, bool isDirect = true) { if (!AddLogCheck(logType, tag)) { return; } LogItem.LogInfo info = new LogItem.LogInfo(); info.m_LogType = logType; info.m_LogTag = tag; if (isProtoMsg) { info.m_Msg = HandleProtoMsg(msg); } else { info.m_Msg = HandleInfo(msg); } info.m_Time = DateTime.Now.ToString("HH:mm:ss"); if (isDirect && m_TraceLev != TraceLev.None) { info.m_Trace = StackTraceUtility.ExtractStackTrace(); if (m_TraceLev == TraceLev.Simple) { int idx = info.m_Trace.IndexOf("UnityEngine."); if (idx != -1) { info.m_Trace = info.m_Trace.Substring(0, idx); } } } if (m_OutScreen == true) { AddToScreen(info); } if (m_OutFile == true) { AddToFile(info.ToString()); } if (m_OutConsole && !m_UseMessageReceived)//防止循环 { AddToConsole(info.m_LogType, info.ToString()); } }
public override void Init() { base.Init(); m_LogContent = this.transform.FindChild("Log/Viewport/Content"); layout = m_LogContent.gameObject.AddComponent <LogLayout>(); m_LogPrefab = this.transform.FindChild("Log/LogPrefab"); m_LogPrefab.gameObject.SetActive(false); m_FilterInput = this.transform.FindChild("BaseCtr/InputField").GetComponent <InputField>(); m_FilterInput.onEndEdit.AddListener((str) => { filterStrs = JerryUtil.String2TArray <string>(str, ';'); RefreshList(); }); m_TypeDropdown = this.transform.FindChild("BaseCtr/TypeDropdown").GetComponent <Dropdown>(); m_TypeDropdown.options.Clear(); m_TypeDropdown.options.AddRange(new List <Dropdown.OptionData>() { new Dropdown.OptionData() { text = Enum_LogType.All.ToString() }, new Dropdown.OptionData() { text = Enum_LogType.Inf.ToString() }, new Dropdown.OptionData() { text = Enum_LogType.War.ToString() }, new Dropdown.OptionData() { text = Enum_LogType.Err.ToString() }, }); m_TypeDropdown.onValueChanged.AddListener((val) => { filterType = (Enum_LogType)val; RefreshList(); }); m_TagDropdown = this.transform.FindChild("BaseCtr/TagDropdown").GetComponent <Dropdown>(); m_TagDropdown.options.Clear(); m_TagDropdown.options.AddRange(new List <Dropdown.OptionData>() { new Dropdown.OptionData() { text = Enum_LogTag.All.ToString() }, new Dropdown.OptionData() { text = Enum_LogTag.Tag0.ToString() }, new Dropdown.OptionData() { text = Enum_LogTag.Tag1.ToString() }, new Dropdown.OptionData() { text = Enum_LogTag.Tag2.ToString() }, }); m_TagDropdown.onValueChanged.AddListener((val) => { filterTag = (Enum_LogTag)val; RefreshList(); }); JerryDebugUGUI.Inst.AddCtr(new CtrConfig() { m_Name = "Clear", m_Color = Color.red, m_Callback = (x) => { CleanAllLog(); }, }); CleanAllLog(); JerryEventMgr.AddEvent(Enum_Event.AddLog2Screen.ToString(), AddLog2Screen); JerryEventMgr.AddEvent(Enum_Event.Change2Bottom.ToString(), EventChange2Bottom); }