C#簡單寫日誌

自己整理了一個簡單寫日誌的類,方便以後再次用到。

說明: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();
                }
            }

        }

    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章