private static void Log(LogGrade logGrade, string source, params string[] message) { int length = message.Length; if (length <= 0) { return; } m_LogStringBuilder.Length = 0; m_LogStringBuilder.AppendFormat("¡¾{0}¡¿", message[0]); for (int index = 1; index < length; index++) { m_LogStringBuilder.Append(message[index]); if (index != length - 1) { m_LogStringBuilder.Append(" "); } } if (logGrade == LogGrade.Error) { UnityEngine.Debug.LogError(m_LogStringBuilder.ToString()); } else if (logGrade == LogGrade.Warnning) { UnityEngine.Debug.LogWarning(m_LogStringBuilder.ToString()); } else { UnityEngine.Debug.Log(m_LogStringBuilder.ToString()); } }
/// <summary> /// 写日志 /// </summary> /// <param name="strSubSys">子系统,默认为Sys</param> /// <param name="logType">日志类型</param> /// <param name="logGrade">警告级别</param> /// <param name="errorMessage">日志内容</param> public static void WriteLog(string strSubSys, LogType logType, LogGrade logGrade, string errorMessage, string ext1 = "", string ext2 = "") { if (IsInit) { InitFileTraceLog(); } InsertLogToMem(new LogInfo() { LogDt = DateTime.Now, LogGrade = logGrade, LogType = logType, LogMsg = errorMessage, LogSubSys = strSubSys, LogExt1 = ext1, LogExt2 = ext2 }); foreach (ILog logHandler in lstLogHandler) { logHandler.WriteLog(strSubSys, logType, logGrade, errorMessage, ext1, ext2); } }
/// <summary> /// 写日志 /// </summary> /// <param name="strSubSys">子系统,默认为Sys</param> /// <param name="logType">日志类型</param> /// <param name="logGrade">警告级别</param> /// <param name="errorMessage">日志内容</param> public void WriteLog(string strSubSys, LogType logType, LogGrade logGrade, string errorMessage, string ext1, string ext2) { try { LogInfo log = new LogInfo() { LogDt = DateTime.Now, LogGrade = logGrade, LogType = logType, LogMsg = errorMessage, LogSubSys = strSubSys, LogExt1 = ext1, LogExt2 = ext2 }; string strLog = JsonStrObjConver.Obj2JsonStr(log, typeof(LogInfo)); byte[] bufLog = System.Text.Encoding.UTF8.GetBytes(strLog); foreach (SocketServerInfo aServer in lstServerInfo) { udp.Send(bufLog, bufLog.Count(), aServer.Ip, aServer.Port); } } catch (Exception ex) { System.Diagnostics.Trace.WriteLine(ex.Message); return; } }
/// <summary> /// 写日志 /// </summary> /// <param name="strSubSys">子系统,默认为Sys</param> /// <param name="logType">日志类型</param> /// <param name="logGrade">警告级别</param> /// <param name="errorMessage">日志内容</param> public void WriteLog(string strSubSys, LogType logType, LogGrade logGrade, string errorMessage, string strExt1, string strExt2) { string strLog = string.Format("{0,-20};{1,-10};{2,-10};{3,-10};ex{4:-10};ex{5:-10};{6,-10}", DateTime.Now, strSubSys, EnumTextByDescription.GetEnumDesc(logType), EnumTextByDescription.GetEnumDesc(logGrade), errorMessage, strExt1, strExt2); System.Diagnostics.Trace.WriteLine(strLog); }
/// <summary> /// 添加警告类型的日志,子系统默认为“sys” /// 由于警告的级别需要自定义,因此没有写默认参数需要指定 /// </summary> /// <param name="logWarringGrade">警告级别</param> /// <param name="errorText">日志内容</param> public static void WriteWarringDefSys(LogGrade logWarringGrade, string errorText, string ext1 = "", string ext2 = "") { InsertLogToMem(new LogInfo() { LogDt = DateTime.Now, LogGrade = LogGrade.Low, LogType = LogType.LogTypeInfo, LogMsg = errorText, LogSubSys = LogInfo.DEFAULT_SYS, LogExt1 = ext1, LogExt2 = ext2 }); foreach (ILog logHandler in lstLogHandler) { logHandler.WriteLog("SYS", LogType.LogTypeWarring, logWarringGrade, errorText, ext1, ext2); } }
/// <summary> /// 用来判断是否结束应用的内部方法 /// </summary> /// <param name="logGrade">日志等级</param> /// <returns>是否关闭程序</returns> private static bool exitSwitch(LogGrade logGrade) { switch (logGrade) { case LogGrade.msg: case LogGrade.info: case LogGrade.trace: case LogGrade.debug: case LogGrade.warn: case LogGrade.error: return(false); case LogGrade.fatal: return(true); default: return(false); } }
/// <summary> /// 写日志 /// </summary> /// <param name="strSubSys">子系统,默认为Sys</param> /// <param name="logType">日志类型</param> /// <param name="logGrade">警告级别</param> /// <param name="errorMessage">日志内容</param> public void WriteLog(string strSubSys, LogType logType, LogGrade logGrade, string errorMessage, string strExt1, string strExt2) { try { System.Diagnostics.Trace.WriteLine(AppDomain.CurrentDomain.BaseDirectory + "FileLogs"); string logPath = string.Format("{0}filelogs\\{1}", AppDomain.CurrentDomain.BaseDirectory, strFileName); if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "FileLogs")) { Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "FileLogs"); } lock (lockObj) { FileInfo fi = new FileInfo(logPath); if (fi.Exists && fi.Length > iFileLen) { FileCopy(logPath); fi.Delete(); } using (StreamWriter sw = new StreamWriter(logPath, true, Encoding.Unicode)) { sw.WriteLine(string.Format("{0,-20};{1,-10};{2,-10};{3,-10};{4,-10};{5,-10};{6,-10}", DateTime.Now, strSubSys, EnumTextByDescription.GetEnumDesc(logType), EnumTextByDescription.GetEnumDesc(logGrade), strExt1, strExt2, errorMessage)); } } } catch (Exception ex) { System.Diagnostics.Trace.Write(ex.Message); } }
public static void LuaLog(int logGrade, string title, string message) { LogGrade cslogGrade = (LogGrade)logGrade; Log(cslogGrade, "[lua]", title, message); }
/// <summary> /// 弹出错误窗口 /// </summary> /// <param name="message">错误窗口额外信息</param> /// <param name="e">错误窗口输出简要异常信息</param> /// <param name="logGrade">日志错误等级 用来判断是否关闭程序</param> public ErrorBox(string message, Exception e, LogGrade logGrade) : this(message, e, exitSwitch(logGrade)) { }
/// <summary> /// 弹出错误窗口 /// </summary> /// <param name="e">错误窗口输出简要异常信息</param> /// <param name="logGrade">日志错误等级 用来判断是否关闭程序</param> public ErrorBox(Exception e, LogGrade logGrade) : this(null, e, exitSwitch(logGrade)) { }
/// <summary> /// 弹出错误窗口 /// </summary> /// <param name="message">错误窗口额外信息</param> /// <param name="logGrade">日志错误等级 用来判断是否关闭程序</param> public ErrorBox(string message, LogGrade logGrade) : this(message, null, exitSwitch(logGrade)) { }
/// <summary> /// 弹出错误窗口 /// </summary> /// <param name="logGrade">日志错误等级 用来判断是否关闭程序</param> public ErrorBox(LogGrade logGrade) : this(null, null, exitSwitch(logGrade)) { }