Пример #1
0
    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());
        }
    }
Пример #2
0
    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);
    }
Пример #3
0
 /// <summary>
 /// LOG
 /// </summary>
 /// <param name="msg"></param>
 /// <param name="tag"></param>
 /// <param name="isProtoMsg"></param>
 public void LogError(object msg, Enum_LogTag tag = Enum_LogTag.All, bool isProtoMsg = false)
 {
     AddLog(msg, Enum_LogType.Err, tag, isProtoMsg);
 }
Пример #4
0
 /// <summary>
 /// LOG
 /// </summary>
 /// <param name="msg"></param>
 /// <param name="tag"></param>
 /// <param name="isProtoMsg"></param>
 public void LogInfo(object msg, Enum_LogTag tag = Enum_LogTag.All, bool isProtoMsg = false)
 {
     AddLog(msg, Enum_LogType.Inf, tag, isProtoMsg);
 }