.Net異常釋出器的開發(2) (轉)
.Net異常釋出器的開發(2) (轉)[@more@]
下面以一個類便是對釋出器進行操作,如獲取上述三個的位置並設定相關配置: /// /// ExceptionSetting 的摘要說明。 /// public class ExceptionSetting { /// /// 獲取用於異常處理的資料夾 /// public static string FilePath { get { string fullpath; if (AppConfig.GetAppSetting("ExceptionPath") != null) { fullpath = AppConfig.GetAppSetting("ExceptionPath"); while (fullpath.StartsWith("")) { fullpath = fullpath.Remove(0,1); } } else { fullpath = Path.GetDirectoryName(Path.GetFullPath("Temp.")); } fullpath = Path.GetFullPath(fullpath); fullpath = fullpath + ""; if (!Directory.Exists(Path.GetDirectoryName(fullpath))) { Directory.CreateDirectory(Path.GetDirectoryName(fullpath)); } return fullpath; } } /// /// 獲取或設定用於異常處理的資料夾的字串 /// public static string FilePathSettingString { get { return AppConfig.GetAppSetting("ExceptionPath"); } set { AppConfig.SaveAppSetting("ExceptionPath",value); } } /// /// 獲取或設定異常記錄型別,預設為使用XML檔案記錄 /// public static CanUseExceptionLogType ExceptionLogType { get { string exceptionLogType = AppConfig.GetAppSetting("ExceptionLogType"); if (exceptionLogType.ToLower().Trim() == CanUseExceptionLogType.SystemLog.ToString().ToLower()) { return CanUseExceptionLogType.SystemLog; } else if (exceptionLogType.ToLower().Trim() == CanUseExceptionLogType.All.ToString().ToLower()) { return CanUseExceptionLogType.All; } else return CanUseExceptionLogType.XMLFile; } set { AppConfig.SaveAppSetting("ExceptionLogType",value.ToString()); } }
}
而下面這一個類則是用於對異常釋出器用到的三個檔案進行讀寫的: /// /// LogAccess 的摘要說明。 /// public class LogAccess { /// /// 寫入異常處理日誌 /// /// public static void WriteLogFile(ExceptionLogData ds) { ds.WriteXml(ExceptionSetting.FilePath +"ExceptionLog.XML"); } /// /// 讀出異常處理日誌 /// /// public static ExceptionLogData ReadLogFile() { ExceptionLogData ds = new ExceptionLogData(); if ( !File.Exists(ExceptionSetting.FilePath +"ExceptionLog.XML")) { ds.WriteXml(ExceptionSetting.FilePath +"ExceptionLog.XML"); } ds.Clear(); ds.ReadXml(ExceptionSetting.FilePath +"ExceptionLog.XML"); return ds; } /// /// 讀出自定義通用資訊 /// /// public static CustomOutMessageData GetCustomOutMessage() { CustomOutMessageData ds = new CustomOutMessageData(); if ( !File.Exists(ExceptionSetting.FilePath +"CustomOutMessage.XML")) { ds.WriteXml(ExceptionSetting.FilePath +"CustomOutMessage.XML"); } ds.Clear(); ds.ReadXml(ExceptionSetting.FilePath +"CustomOutMessage.XML"); return ds; } /// /// 寫入自定義通用資訊 /// /// public static void SaveCustomOutMessage(CustomOutMessageData ds) { ds.WriteXml(ExceptionSetting.FilePath +"CustomOutMessage.XML"); } /// /// 獲取異常處理定義資訊 /// /// 讀取到的異常處理定義資訊 public static ExceptionDetailData GetExceptionDetail() { ExceptionDetailData exceptionDetailDS = new ExceptionDetailData(); if ( !File.Exists(ExceptionSetting.FilePath +"ExceptionList.xml")) { exceptionDetailDS.WriteXml(ExceptionSetting.FilePath +"ExceptionList.xml"); FileStream fs = new FileStream(ExceptionSetting.FilePath +"ExceptionList.xml", FileMode.OpenOrCreate, FileAccess.ReadWrite); StreamWriter w = new StreamWriter(fs); w.BaseStream.Seek(0, SeekOrigin.End); w.Write("nn<!--nType:異常的型別,系統依據此值和下面的InMessage一起判定異常的處理方式,此值與異常型別的完全限定名嚴格相等,不區分大小寫;nInMessage:異常資訊中的關鍵字,系統依據此關鍵字和上面的異常型別一起判定異常的處理方式,關鍵字最多可以有四個,不區分大小寫,有層次關係;nHelpLink:自定義的有關異常的幫助檔案路徑;nOutMessage:自定義的向顯示的友好資訊。n-->"); w.Flush(); w.Close(); } exceptionDetailDS.Clear(); exceptionDetailDS.ReadXml(ExceptionSetting.FilePath +"ExceptionList.xml"); return exceptionDetailDS; } /// /// 儲存異常處理定義資訊 /// /// 要儲存的異常處理定義資訊 public static void SaveExceptionDetail(ExceptionDetailData exceptionDetailDS) { exceptionDetailDS.WriteXml(ExceptionSetting.FilePath +"ExceptionList.xml"); FileStream fs = new FileStream(ExceptionSetting.FilePath +"ExceptionList.xml", FileMode.OpenOrCreate, FileAccess.ReadWrite); StreamWriter w = new StreamWriter(fs); w.BaseStream.Seek(0, SeekOrigin.End); w.Write("nn<!--nType:異常的型別,系統依據此值和下面的InMessage一起判定異常的處理方式,此值與異常型別的完全限定名嚴格相等,不區分大小寫;nInMessage:異常資訊中的關鍵字,系統依據此關鍵字和上面的異常型別一起判定異常的處理方式,關鍵字最多可以有四個,不區分大小寫,有層次關係;nHelpLink:自定義的有關異常的幫助檔案路徑;nOutMessage:自定義的向使用者顯示的友好資訊。n-->"); w.Flush(); w.Close(); }
}
(未完待續)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10794571/viewspace-974809/,如需轉載,請註明出處,否則將追究法律責任。
請登入後發表評論
登入
全部評論
相關文章
- (轉)pl/sql開發異常處理SQL
- 深入淺出話異常-(1) (轉)
- 小心異常(Exception)帶來的風險(2) (轉)Exception
- MongoDB Java開發從Mongo讀取Object值轉Long異常引起的資料型別轉換異常MongoDBJavaObject資料型別
- MFC開發常見問題的回答2 (轉)
- .NET Aspire 正式釋出:簡化 .NET 雲原生開發
- 異常-try...catch的方式處理異常2
- .NET 9 RC 2正式釋出
- C++編譯器怎麼實現異常處理2 (轉)C++編譯
- 自建工具集開發文件------異常處理(1.0.0.1) (轉)
- RedisClient 報出java.net.SocketException: Broken pipe異常RedisclientJavaException
- oracle出異常:Io 異常: The Network Adapter could not establish the connection 解決辦法OracleAPT
- 開發:異常收集之 DB2建表相關問題DB2
- 開發:異常收集之 expected single matching bean but found 2Bean
- 微軟正式釋出:.NET Aspire 雲原生開發框架微軟框架
- ORACLE中的異常(轉)Oracle
- Java常見異常及解釋Java
- C與C++中的異常處理2(part2) (轉)C++
- (interbase之九)intebase的儲存過程、觸發器以及事件、異常 (轉)儲存過程觸發器事件
- 異常處理2
- 利用script的異常處理避免網頁出錯 (轉)網頁
- 循序漸進學.Net Core Web Api開發系列【14】:異常處理WebAPI
- NetBeans IDE 8.0.2 釋出,整合開發環境BeanIDE開發環境
- 前端開發中的Error以及異常捕獲前端Error
- .NET 開發 (轉)
- .NetCore——全域性異常過濾器ExceptionFilterAttributeNetCore過濾器ExceptionFilter
- Java 常見異常及趣味解釋Java
- Flask開發技巧之異常處理Flask
- Oracle開發基礎-異常處理Oracle
- [Java開發之路](5)異常詳解Java
- MVC使用異常過濾器處理異常MVC過濾器
- 異常處理 (轉)
- 正式釋出 | .NET 7 預覽版 2
- ASP.NET專案開發中應用程式異常處理淺析ASP.NET
- .net異常處理的效能問題
- Google釋出VS Code,支援Kubernetes應用開發Go
- .NET 6 Preview 6 正式釋出: 關注網路開發View
- 精通ASP.NET(基於VB.NET)( 三)VB.NET異常處理 (轉)ASP.NET