using System;
using System.IO;
using System.Text;
namespace Controls.Helper
{
public class LoggerHelper
{
private static object o = new object();
private static string GetLogFilePath()
{
string filePath = AppDomain.CurrentDomain.BaseDirectory + @"\Log\ExeConfig\";
//判断路径、文件是否存在,如不存在则生成相关资源
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
//设置文件名
string currtime = DateTime.Now.ToString("yyyyMMdd");
filePath = filePath +currtime + ".log";
if (!File.Exists(filePath))
{
FileStream fs = File.Create(filePath);
fs.Close();
}
return filePath;
}
public static void WriteLog(string errorStr, Exception e)
{
try
{
lock (o)
{
string filepath = GetLogFilePath();
StreamWriter writer = new StreamWriter(filepath, true, Encoding.GetEncoding("utf-8"));
string title = string.Format("================================{0}================================", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
writer.WriteLine(string.Empty);
writer.WriteLine(title);
writer.WriteLine(string.Format("错误内容:{0}", errorStr));
if (e != null)
{
writer.WriteLine(string.Format("异常信息:{0}", e.ToString()));
writer.WriteLine(string.Format("错误消息: {0}", e.Message + (e.InnerException == null ? "" : e.InnerException.Message)));
writer.WriteLine(string.Format("调用堆栈: {0}", e.StackTrace));
}
writer.WriteLine(title);
writer.WriteLine(string.Empty);
writer.Flush();
writer.Close();
}
}
catch (Exception ex)
{
}
}
}
}