using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; public class LogService { private static readonly object lockObj = new object(); public static void WriteAsync(object obj, string filePath = "Vlog", bool isAppend = true) { Task.Run(() => { Write(obj, filePath, isAppend); }); } public static void WriteAsync(object obj, string filePath = "Vlog", bool isAppend = true) { Task.Run(() => { Write(obj, $@"{filePath}\{typeof(T).Name}", isAppend); }); } #region 日志 public static void Write(object obj, string filePath = "Vlog", bool isAppend = true) { try { lock (lockObj) { filePath = $@"{filePath}\webapi{DateTime.Now.ToString("yyyyMMdd")}.txt"; filePath = AppDomain.CurrentDomain.BaseDirectory + filePath; if (!System.IO.Directory.Exists(Path.GetDirectoryName(filePath))) { System.IO.Directory.CreateDirectory(Path.GetDirectoryName(filePath)); } bool fileExists = System.IO.File.Exists(filePath); //不存在 则创建该文件 if (!fileExists) { System.IO.File.Create(filePath).Close(); } using (StreamWriter writer = new StreamWriter(filePath, isAppend)) { //存在的时候才写一行 if (fileExists && isAppend) { writer.WriteLine(); } var content = obj is string ? obj : JsonConvert.SerializeObject(obj); writer.WriteLine($"{DateTime.Now} {content}"); } } } catch (Exception ex) { } } #endregion }