自己整理了一個簡單寫日誌的類,方便以後再次用到。
說明:CS程序,程序啓動目錄下,自動創建Log目錄,寫日誌。日誌按天記錄,每天的日誌作爲一個txt文件保存。
/// <summary>
/// 日誌管理功能
/// </summary>
public class LogManager
{
private static string logdirectory = Application.StartupPath + @"\Log\";
public static void Write(string msg)
{
if (!System.IO.Directory.Exists(logdirectory))
{
System.IO.Directory.CreateDirectory(logdirectory);
}
string name = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString().PadLeft(2, '0') + DateTime.Now.Day.ToString().PadLeft(2, '0');
string datapath = logdirectory + name + ".txt";
if (System.IO.File.Exists(datapath))//追加
{
using (FileStream fs = new FileStream(datapath, FileMode.Append))
{
StreamWriter sw = new StreamWriter(fs);
//開始寫入
sw.WriteLine("\n");
sw.WriteLine("當前時間:" + DateTime.Now.ToString());
sw.WriteLine("日誌信息:" + msg);
//清空緩衝區
sw.Flush();
//關閉流
sw.Close();
fs.Close();
}
}
else//創建
{
using (FileStream fs = new FileStream(datapath, FileMode.Create))
{
StreamWriter sw = new StreamWriter(fs);
//開始寫入
sw.WriteLine("當前時間:" + DateTime.Now.ToString());
sw.WriteLine("日誌信息:" + msg);
//清空緩衝區
sw.Flush();
//關閉流
sw.Close();
fs.Close();
}
}
}
public static void Write(Exception ex)
{
if (!System.IO.Directory.Exists(logdirectory))
{
System.IO.Directory.CreateDirectory(logdirectory);
}
string name = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString().PadLeft(2, '0') + DateTime.Now.Day.ToString().PadLeft(2, '0');
string datapath = logdirectory + name + ".txt";//文件名格式爲:20170606.txt
if (System.IO.File.Exists(datapath))//追加
{
using (FileStream fs = new FileStream(datapath, FileMode.Append))
{
StreamWriter sw = new StreamWriter(fs);
//開始寫入
sw.WriteLine("\n");
sw.WriteLine("當前時間:" + DateTime.Now.ToString());
sw.WriteLine("異常信息:" + ex.Message);
sw.WriteLine("異常對象:" + ex.Source);
sw.WriteLine("調用堆棧:" + ex.StackTrace);
sw.WriteLine("觸發方法:" + ex.TargetSite);
//清空緩衝區
sw.Flush();
//關閉流
sw.Close();
fs.Close();
}
}
else//創建
{
using (FileStream fs = new FileStream(datapath, FileMode.Create))
{
StreamWriter sw = new StreamWriter(fs);
//開始寫入
sw.WriteLine("當前時間:" + DateTime.Now.ToString());
sw.WriteLine("異常信息:" + ex.Message);
sw.WriteLine("異常對象:" + ex.Source);
sw.WriteLine("調用堆棧:" + ex.StackTrace);
sw.WriteLine("觸發方法:" + ex.TargetSite);
//清空緩衝區
sw.Flush();
//關閉流
sw.Close();
fs.Close();
}
}
}
}