DebuggerComponent.LogNode.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 loyalsoft. All rights reserved.
  4. // Homepage: http://www.game7000.com/
  5. // Feedback: http://www.game7000.com/
  6. //------------------------------------------------------------
  7. using GameFramework;
  8. using System;
  9. using UnityEngine;
  10. namespace UnityGameFramework.Runtime
  11. {
  12. public sealed partial class DebuggerComponent : GameFrameworkComponent
  13. {
  14. /// <summary>
  15. /// 日志记录结点。
  16. /// </summary>
  17. public sealed class LogNode : IReference
  18. {
  19. private DateTime m_LogTime;
  20. private int m_LogFrameCount;
  21. private LogType m_LogType;
  22. private string m_LogMessage;
  23. private string m_StackTrack;
  24. /// <summary>
  25. /// 初始化日志记录结点的新实例。
  26. /// </summary>
  27. public LogNode()
  28. {
  29. m_LogTime = default(DateTime);
  30. m_LogFrameCount = 0;
  31. m_LogType = LogType.Error;
  32. m_LogMessage = null;
  33. m_StackTrack = null;
  34. }
  35. /// <summary>
  36. /// 获取日志时间。
  37. /// </summary>
  38. public DateTime LogTime
  39. {
  40. get
  41. {
  42. return m_LogTime;
  43. }
  44. }
  45. /// <summary>
  46. /// 获取日志帧计数。
  47. /// </summary>
  48. public int LogFrameCount
  49. {
  50. get
  51. {
  52. return m_LogFrameCount;
  53. }
  54. }
  55. /// <summary>
  56. /// 获取日志类型。
  57. /// </summary>
  58. public LogType LogType
  59. {
  60. get
  61. {
  62. return m_LogType;
  63. }
  64. }
  65. /// <summary>
  66. /// 获取日志内容。
  67. /// </summary>
  68. public string LogMessage
  69. {
  70. get
  71. {
  72. return m_LogMessage;
  73. }
  74. }
  75. /// <summary>
  76. /// 获取日志堆栈信息。
  77. /// </summary>
  78. public string StackTrack
  79. {
  80. get
  81. {
  82. return m_StackTrack;
  83. }
  84. }
  85. /// <summary>
  86. /// 创建日志记录结点。
  87. /// </summary>
  88. /// <param name="logType">日志类型。</param>
  89. /// <param name="logMessage">日志内容。</param>
  90. /// <param name="stackTrack">日志堆栈信息。</param>
  91. /// <returns>创建的日志记录结点。</returns>
  92. public static LogNode Create(LogType logType, string logMessage, string stackTrack)
  93. {
  94. LogNode logNode = ReferencePool.Acquire<LogNode>();
  95. logNode.m_LogTime = DateTime.UtcNow;
  96. logNode.m_LogFrameCount = Time.frameCount;
  97. logNode.m_LogType = logType;
  98. logNode.m_LogMessage = logMessage;
  99. logNode.m_StackTrack = stackTrack;
  100. return logNode;
  101. }
  102. /// <summary>
  103. /// 清理日志记录结点。
  104. /// </summary>
  105. public void Clear()
  106. {
  107. m_LogTime = default(DateTime);
  108. m_LogFrameCount = 0;
  109. m_LogType = LogType.Error;
  110. m_LogMessage = null;
  111. m_StackTrack = null;
  112. }
  113. }
  114. }
  115. }