Пример #1
0
 /// <summary>
 /// 添加日志
 /// </summary>
 public override void AddLog(LogTraceNode node)
 {
     lock (m_guard)
     {
         m_LogList.Enqueue(node);
     }
 }
Пример #2
0
    void writeTxt(string name)
    {
        FileMode mode = FileMode.Create;

        if (File.Exists(name))
        {
            mode = FileMode.Append;
        }
        FileStream file = new FileStream(name, mode);

        m_Writer = new StreamWriter(file);
        m_Writer.Flush();
        do
        {
            Thread.Sleep(1);

            // 如果list中有 要打印的东西 则 上锁 打印
            lock (m_guard)
            {
                int nMsgCount = m_LogList.Count;
                if (nMsgCount > 0)
                {
                    for (int j = 0; j < nMsgCount; j++)
                    {
                        // 每次处理30条,不能锁太久,避免跟主线程抢锁而让主线程等待时间太长
                        if (j >= 30)
                        {
                            break;
                        }

                        LogTraceNode node = m_LogList.Dequeue();

                        switch ((LogType)node.type)
                        {
                        case LogType.Log:
                            m_Writer.Write(node.msg + "\r\n");
                            break;

                        case LogType.Warning:
                            m_Writer.Write(node.msg + "\r\n");
                            break;

                        case LogType.Error:
                            m_Writer.Write(node.msg + "\r\n");
                            break;
                        }
                    }

                    m_Writer.Flush();
                }
            }
        } while (m_bThreadContinue);

        //关闭流
        m_Writer.Close();

        //销毁流
        m_Writer.Dispose();
    }
Пример #3
0
    void writeHtml()
    {
        FileStream file = new FileStream(string.Format("{0}//Log.html", m_szFilePath), FileMode.Create);

        m_Writer = new StreamWriter(file);
        //写入头信息
        m_Writer.Write("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /><title>Log</title></head><body>");
        m_Writer.Flush();

        do
        {
            Thread.Sleep(1);

            // 如果list中有 要打印的东西 则 上锁 打印
            lock (m_guard)
            {
                int nMsgCount = m_LogList.Count;
                if (nMsgCount > 0)
                {
                    for (int j = 0; j < nMsgCount; j++)
                    {
                        // 每次处理30条,不能锁太久,避免跟主线程抢锁而让主线程等待时间太长
                        if (j >= 30)
                        {
                            break;
                        }

                        LogTraceNode node = m_LogList.Dequeue();

                        switch ((LogType)node.type)
                        {
                        case LogType.Log:
                            m_Writer.Write(string.Format("<div style=\"color:#0000FF\">{0}</div>", node.msg));
                            break;

                        case LogType.Warning:
                            m_Writer.Write(string.Format("<div style=\"color:#FF00FF\">{0}</div>", node.msg));
                            break;

                        case LogType.Error:
                            m_Writer.Write(string.Format("<div style=\"color:#FF0000\">{0}</div>", node.msg));
                            break;
                        }
                    }

                    m_Writer.Flush();
                }
            }
        } while (m_bThreadContinue);

        // 退出线程之前做收尾工作
        m_Writer.Write("</body></html>");

        //关闭流
        m_Writer.Close();

        //销毁流
        m_Writer.Dispose();
    }
Пример #4
0
 /// <summary>
 /// 添加日志
 /// </summary>
 public override void AddLog(LogTraceNode node)
 {
     // 有换行的,要把换行的劈成多段添加
     string[] split = node.msg.Split(SPLIT);
     for (int i = 0; i < split.Length; i++)
     {
         LogTraceNode newNode;
         newNode.msg  = split[i];
         newNode.type = node.type;
         m_ShowList.Enqueue(newNode);
     }
 }
Пример #5
0
    /// <summary>
    /// 添加日志
    /// </summary>
    public override void AddLog(LogTraceNode node)
    {
        switch ((LogType)node.type)
        {
        case LogType.Log:
            Debug.Log(node.msg);
            break;

        case LogType.Warning:
            Debug.LogWarning(node.msg);
            break;

        case LogType.Error:
            Debug.LogError(node.msg);
            break;
        }
    }
Пример #6
0
 /// <summary>
 /// 添加日志
 /// </summary>
 public virtual void AddLog(LogTraceNode node)
 {
 }