LogScriptingDefineSymbols.cs 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  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 UnityEditor;
  8. namespace UnityGameFramework.Editor
  9. {
  10. /// <summary>
  11. /// 日志脚本宏定义。
  12. /// </summary>
  13. public static class LogScriptingDefineSymbols
  14. {
  15. private const string EnableLogScriptingDefineSymbol = "ENABLE_LOG";
  16. private const string EnableDebugAndAboveLogScriptingDefineSymbol = "ENABLE_DEBUG_AND_ABOVE_LOG";
  17. private const string EnableInfoAndAboveLogScriptingDefineSymbol = "ENABLE_INFO_AND_ABOVE_LOG";
  18. private const string EnableWarningAndAboveLogScriptingDefineSymbol = "ENABLE_WARNING_AND_ABOVE_LOG";
  19. private const string EnableErrorAndAboveLogScriptingDefineSymbol = "ENABLE_ERROR_AND_ABOVE_LOG";
  20. private const string EnableFatalAndAboveLogScriptingDefineSymbol = "ENABLE_FATAL_AND_ABOVE_LOG";
  21. private const string EnableDebugLogScriptingDefineSymbol = "ENABLE_DEBUG_LOG";
  22. private const string EnableInfoLogScriptingDefineSymbol = "ENABLE_INFO_LOG";
  23. private const string EnableWarningLogScriptingDefineSymbol = "ENABLE_WARNING_LOG";
  24. private const string EnableErrorLogScriptingDefineSymbol = "ENABLE_ERROR_LOG";
  25. private const string EnableFatalLogScriptingDefineSymbol = "ENABLE_FATAL_LOG";
  26. private static readonly string[] AboveLogScriptingDefineSymbols = new string[]
  27. {
  28. EnableDebugAndAboveLogScriptingDefineSymbol,
  29. EnableInfoAndAboveLogScriptingDefineSymbol,
  30. EnableWarningAndAboveLogScriptingDefineSymbol,
  31. EnableErrorAndAboveLogScriptingDefineSymbol,
  32. EnableFatalAndAboveLogScriptingDefineSymbol
  33. };
  34. private static readonly string[] SpecifyLogScriptingDefineSymbols = new string[]
  35. {
  36. EnableDebugLogScriptingDefineSymbol,
  37. EnableInfoLogScriptingDefineSymbol,
  38. EnableWarningLogScriptingDefineSymbol,
  39. EnableErrorLogScriptingDefineSymbol,
  40. EnableFatalLogScriptingDefineSymbol
  41. };
  42. /// <summary>
  43. /// 禁用所有日志脚本宏定义。
  44. /// </summary>
  45. [MenuItem("Game Framework/Log Scripting Define Symbols/Disable All Logs", false, 30)]
  46. public static void DisableAllLogs()
  47. {
  48. ScriptingDefineSymbols.RemoveScriptingDefineSymbol(EnableLogScriptingDefineSymbol);
  49. foreach (string specifyLogScriptingDefineSymbol in SpecifyLogScriptingDefineSymbols)
  50. {
  51. ScriptingDefineSymbols.RemoveScriptingDefineSymbol(specifyLogScriptingDefineSymbol);
  52. }
  53. foreach (string aboveLogScriptingDefineSymbol in AboveLogScriptingDefineSymbols)
  54. {
  55. ScriptingDefineSymbols.RemoveScriptingDefineSymbol(aboveLogScriptingDefineSymbol);
  56. }
  57. }
  58. /// <summary>
  59. /// 开启所有日志脚本宏定义。
  60. /// </summary>
  61. [MenuItem("Game Framework/Log Scripting Define Symbols/Enable All Logs", false, 31)]
  62. public static void EnableAllLogs()
  63. {
  64. DisableAllLogs();
  65. ScriptingDefineSymbols.AddScriptingDefineSymbol(EnableLogScriptingDefineSymbol);
  66. }
  67. /// <summary>
  68. /// 开启调试及以上级别的日志脚本宏定义。
  69. /// </summary>
  70. [MenuItem("Game Framework/Log Scripting Define Symbols/Enable Debug And Above Logs", false, 32)]
  71. public static void EnableDebugAndAboveLogs()
  72. {
  73. SetAboveLogScriptingDefineSymbol(EnableDebugAndAboveLogScriptingDefineSymbol);
  74. }
  75. /// <summary>
  76. /// 开启信息及以上级别的日志脚本宏定义。
  77. /// </summary>
  78. [MenuItem("Game Framework/Log Scripting Define Symbols/Enable Info And Above Logs", false, 33)]
  79. public static void EnableInfoAndAboveLogs()
  80. {
  81. SetAboveLogScriptingDefineSymbol(EnableInfoAndAboveLogScriptingDefineSymbol);
  82. }
  83. /// <summary>
  84. /// 开启警告及以上级别的日志脚本宏定义。
  85. /// </summary>
  86. [MenuItem("Game Framework/Log Scripting Define Symbols/Enable Warning And Above Logs", false, 34)]
  87. public static void EnableWarningAndAboveLogs()
  88. {
  89. SetAboveLogScriptingDefineSymbol(EnableWarningAndAboveLogScriptingDefineSymbol);
  90. }
  91. /// <summary>
  92. /// 开启错误及以上级别的日志脚本宏定义。
  93. /// </summary>
  94. [MenuItem("Game Framework/Log Scripting Define Symbols/Enable Error And Above Logs", false, 35)]
  95. public static void EnableErrorAndAboveLogs()
  96. {
  97. SetAboveLogScriptingDefineSymbol(EnableErrorAndAboveLogScriptingDefineSymbol);
  98. }
  99. /// <summary>
  100. /// 开启严重错误及以上级别的日志脚本宏定义。
  101. /// </summary>
  102. [MenuItem("Game Framework/Log Scripting Define Symbols/Enable Fatal And Above Logs", false, 36)]
  103. public static void EnableFatalAndAboveLogs()
  104. {
  105. SetAboveLogScriptingDefineSymbol(EnableFatalAndAboveLogScriptingDefineSymbol);
  106. }
  107. /// <summary>
  108. /// 设置日志脚本宏定义。
  109. /// </summary>
  110. /// <param name="aboveLogScriptingDefineSymbol">要设置的日志脚本宏定义。</param>
  111. public static void SetAboveLogScriptingDefineSymbol(string aboveLogScriptingDefineSymbol)
  112. {
  113. if (string.IsNullOrEmpty(aboveLogScriptingDefineSymbol))
  114. {
  115. return;
  116. }
  117. foreach (string i in AboveLogScriptingDefineSymbols)
  118. {
  119. if (i == aboveLogScriptingDefineSymbol)
  120. {
  121. DisableAllLogs();
  122. ScriptingDefineSymbols.AddScriptingDefineSymbol(aboveLogScriptingDefineSymbol);
  123. return;
  124. }
  125. }
  126. }
  127. /// <summary>
  128. /// 设置日志脚本宏定义。
  129. /// </summary>
  130. /// <param name="specifyLogScriptingDefineSymbols">要设置的日志脚本宏定义。</param>
  131. public static void SetSpecifyLogScriptingDefineSymbols(string[] specifyLogScriptingDefineSymbols)
  132. {
  133. if (specifyLogScriptingDefineSymbols == null || specifyLogScriptingDefineSymbols.Length <= 0)
  134. {
  135. return;
  136. }
  137. bool removed = false;
  138. foreach (string specifyLogScriptingDefineSymbol in specifyLogScriptingDefineSymbols)
  139. {
  140. if (string.IsNullOrEmpty(specifyLogScriptingDefineSymbol))
  141. {
  142. continue;
  143. }
  144. foreach (string i in SpecifyLogScriptingDefineSymbols)
  145. {
  146. if (i == specifyLogScriptingDefineSymbol)
  147. {
  148. if (!removed)
  149. {
  150. removed = true;
  151. DisableAllLogs();
  152. }
  153. ScriptingDefineSymbols.AddScriptingDefineSymbol(specifyLogScriptingDefineSymbol);
  154. break;
  155. }
  156. }
  157. }
  158. }
  159. }
  160. }