C#日誌記錄類_艾孜爾江撰


    public class WriteLog
    {
        /// <summary>
        /// 將錯誤寫入文件中
        /// </summary>
        /// <param name="fileName">文件名</param>
        /// <param name="exception">發生的異常</param>
        public static void WriteErorrLog(string fileName, Exception exception)
        {
            if (exception == null) return; //ex = null 返回 
            DateTime dt = DateTime.Now; // 設置日誌時間 
            string time = dt.ToString("yyyy-MM-dd HH:mm:ss"); //年-月-日 時:分:秒 
            string logName = dt.ToString("yyyy-MM-dd"); //日誌名稱 
            string logPath = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, Path.Combine("log", fileName)); //日誌存放路徑 
            string log = Path.Combine(logPath, string.Format("{0}.log", logName)); //路徑 + 名稱
            try
            {
                FileInfo info = new FileInfo(log);
                if (info.Directory != null && !info.Directory.Exists)
                {
                    info.Directory.Create();
                }
                using (StreamWriter write = new StreamWriter(log, true, Encoding.GetEncoding("utf-8")))
                {
                    write.WriteLine(time);
                    write.WriteLine(exception.Message);
                    write.WriteLine("異常信息:" + exception);
                    write.WriteLine("異常堆棧:" + exception.StackTrace);
                    write.WriteLine("異常簡述:" + exception.Message);
                    write.WriteLine("\r\n----------------------------------\r\n");
                    write.Flush();
                    write.Close();
                    write.Dispose();
                }
            }
            catch { }
        }

        /// <summary>
        /// 將終端內容打印到文件中
        /// </summary>
        /// <param name="fileName">文件名</param>
        /// <param name="message">所要寫入的內容</param>
        public static bool WriteMessage(string fileName, string message)
        {
            //ex = null 返回 
            DateTime dt = DateTime.Now; // 設置日誌時間 
            string time = dt.ToString("yyyy-MM-dd HH:mm:ss"); //年-月-日 時:分:秒 
            string logName = dt.ToString("yyyy-MM-dd"); //日誌名稱 
            string logPath = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, Path.Combine("log", fileName)); //日誌存放路徑 
            string log = Path.Combine(logPath, string.Format("{0}.log", logName)); //路徑 + 名稱
            try
            {
                FileInfo info = new FileInfo(log);
                if (info.Directory != null && !info.Directory.Exists)
                {
                    info.Directory.Create();
                }
                using (StreamWriter write = new StreamWriter(log, true, Encoding.GetEncoding("utf-8")))
                {
                    write.WriteLine(time);
                    write.WriteLine("信息:" + message);
                    write.WriteLine("\r\n----------------------------------\r\n");
                    write.Flush();
                    write.Close();
                    write.Dispose();
                }
                return true;
            }
            catch (Exception e)
            {
                WriteErorrLog("WriteMessageException", e);
                return false;
            }
        }


        /// <summary>
        /// 將錯誤寫入文件中
        /// </summary>
        /// <param name="exception">發生的錯誤</param>
        /// <param name="message">需要寫入的消息</param>
        public static bool WriteErorrLog(Exception exception, string message)
        {
            if (exception == null) return false; //ex = null 返回 
            DateTime dt = DateTime.Now; // 設置日誌時間 
            string time = dt.ToString("yyyy-MM-dd HH:mm:ss"); //年-月-日 時:分:秒 
            string logName = dt.ToString("yyyy-MM-dd"); //日誌名稱 
            string logPath = System.AppDomain.CurrentDomain.BaseDirectory; //日誌存放路徑 
            string log = Path.Combine(Path.Combine(logPath, "log"), string.Format("{0}.log", logName)); //路徑 + 名稱
            try
            {
                FileInfo info = new FileInfo(log);
                if (info.Directory != null && !info.Directory.Exists)
                {
                    info.Directory.Create();
                }
                using (StreamWriter write = new StreamWriter(log, true, Encoding.GetEncoding("utf-8")))
                {
                    write.WriteLine(time);
                    write.WriteLine(exception.Message);
                    write.WriteLine("異常信息:" + exception);
                    write.WriteLine("異常堆棧:" + exception.StackTrace);
                    write.WriteLine("異常簡述:" + message);
                    write.WriteLine("\r\n----------------------------------\r\n");
                    write.Flush();
                    write.Close();
                    write.Dispose();
                }
                return true;
            }
            catch (Exception e)
            {
                WriteMessage("ErrorLogException", e.ToString());
                return false;
            }
        }

        /// <summary>
        /// 將消息寫入文件
        /// </summary>
        /// <param name="message">需要寫入的內容</param>
        public static bool WriteMessage(string message)
        {
            //ex = null 返回 
            DateTime dt = DateTime.Now; // 設置日誌時間 
            string time = dt.ToString("yyyy-MM-dd HH:mm:ss"); //年-月-日 時:分:秒 
            string logName = dt.ToString("yyyy-MM-dd"); //日誌名稱 
            string logPath = System.AppDomain.CurrentDomain.BaseDirectory; //日誌存放路徑 
            // System.Console.WriteLine(logPath);
            string log = Path.Combine(Path.Combine(logPath, "log"), string.Format("{0}.log", logName)); //路徑 + 名稱
            try
            {
                FileInfo info = new FileInfo(log);
                if (info.Directory != null && !info.Directory.Exists)
                {
                    info.Directory.Create();
                }
                using (StreamWriter write = new StreamWriter(log, true, Encoding.GetEncoding("utf-8")))
                {
                    write.WriteLine(time);
                    write.WriteLine("信息:" + message);
                    write.WriteLine("\r\n----------------------------------\r\n");
                    write.Flush();
                    write.Close();
                    write.Dispose();
                }
                return true;
            }
            catch (Exception e)
            {
                WriteErorrLog("WriteMessageException", e);
                return false;
            }
        }
    }


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