| using Newtonsoft.Json; | 
| using System; | 
| using System.Collections.Generic; | 
| using System.IO; | 
| using System.Linq; | 
| using System.Text; | 
| using System.Threading.Tasks; | 
|   | 
| namespace WebAPI | 
| { | 
|     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<T>(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 | 
|     } | 
| } |