/// <summary> /// 记录日志 /// </summary> /// <param name="info"> 日志消息 </param> public void RecordLog(RecordInfo info) { List <string> names = new List <string>(); string log; switch (info.Type) { case LogType.NetWork: case LogType.Plan: case LogType.Request: case LogType.System: case LogType.Login: names.Add("system"); log = $@"[{info.Time:u}] {info.Index:X8}-{info.Machine}-{info.RequestID}-{info.User} > {info.Message}"; break; case LogType.Warning: names.Add("warning"); names.Add("system"); log = $@"[{info.Time:u}] {info.Index:X8}-{info.Machine}-{info.RequestID}-{info.User} > {info.Message}"; break; case LogType.Error: case LogType.Exception: names.Add("error"); names.Add("system"); log = $@"[{info.Time:u}] {info.Index:X8}-{info.Machine}-{info.ThreadID}-{info.RequestID}-{info.User} > {info.Message} "; break; case LogType.DataBase: names.Add("sql"); names.Add("trace"); log = $@"/*[{info.Time:u}] {info.Index:X8}-{info.Machine}-{info.RequestID}-{info.User}*/ {info.Message} "; break; case LogType.Monitor: names.Add("monitor"); names.Add("trace"); log = info.Message; break; case LogType.Debug: names.Add("debug"); names.Add("trace"); log = info.Message; break; default: names.Add("trace"); log = $@"[{info.Time:u}] {info.Index:X8}-{info.Machine}-{info.RequestID}-{info.User} > {info.Message}"; break; } foreach (var name in names) { try { var writer = GetWriter(name); if (writer == null) { return; } writer.Size += log.Length; writer.Stream.WriteLine(log); } catch (Exception ex) { LogRecorder.SystemTrace(LogLevel.Error, "TextRecorder.RecordLog4", name, ex); } } }