using System;
using System.Diagnostics;
using System.Threading;
namespace LogLibrary.Log
{
internal unsafe class LogUtil
{
static ReaderWriterLockSlim lockSlim = new ReaderWriterLockSlim();
///
/// 格式式化Log信息
///
///
///
///
///
///
private static string GetLogString(string name, string logType, string log)
{
return string.Format("[{0}]{1}-{2}: {3}", DateTime.Now.ToString("HH:mm:ss"), name, logType, log);
}
///
/// 获得日志要保存的路径
///
///
///
///
private static string GetLogPath(string name, string logType)
{
string path = AppDomain.CurrentDomain.BaseDirectory + $"Logs/{DateTime.Now:yyyyMM}";
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}
return System.IO.Path.Combine(path, string.Format("{0}_{1}_{2}.log", DateTime.Now.ToString("yyyy-MM-dd"), name, logType));
}
public static void WriteLogFile(string name, string logType, string log)
{
string logPath = GetLogPath(name, logType);
Trace.WriteLine(log);
lockSlim.EnterWriteLock();//打开写操作锁
try
{
FileUtil.WriteAppend(logPath, log);
}
finally
{
lockSlim.ExitWriteLock();
}
}
}
}