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