/// <summary> /// 将日志写入到文件中 /// </summary> /// <param name="message"></param> /// <param name="EnableStack"></param> private static void LogToFile(string message, bool EnableStack = false) { if (!EnableSave) { return; } if (LogFileWriter == null) { LogFileName = DateTime.Now.GetDateTimeFormats('s')[0].ToString(); LogFileName = LogFileName.Replace("-", "_"); LogFileName = LogFileName.Replace(":", "_"); LogFileName = LogFileName.Replace(" ", ""); LogFileName = LogFileName + ".log"; if (string.IsNullOrEmpty(LogFileDir)) { try { #if UNITY_EDITOR if (!Directory.Exists("d:/UnityLog")) { Directory.CreateDirectory("d:/UnityLog"); } LogFileDir = "d:/UnityLog/"; #else if ((Application.platform == RuntimePlatform.Android) || (Application.platform == RuntimePlatform.IPhonePlayer)) { LogFileDir = Application.persistentDataPath + "/DebuggerLog/"; } #endif } catch (Exception exception) { Debug.Log(Prefix + "获取 Application.persistentDataPath 报错!" + exception.Message, null); return; } } string path = LogFileDir + LogFileName; try { if (!Directory.Exists(LogFileDir)) { Directory.CreateDirectory(LogFileDir); } LogFileWriter = File.AppendText(path); LogFileWriter.AutoFlush = true; } catch (Exception exception2) { LogFileWriter = null; Debug.Log("LogToCache() " + exception2.Message + exception2.StackTrace, null); return; } } if (LogFileWriter != null) { try { if (FirstLogTag) { FirstLogTag = false; PhoneSystemInfo(LogFileWriter); } LogFileWriter.WriteLine(message); if (EnableStack) { LogFileWriter.WriteLine(StackTraceUtility.ExtractStackTrace()); } } catch (Exception) { } } }