在開發程式的過程中,可能為了除錯方便,需要將執行的過程記錄到LOG檔案中,這樣的東西應該是大家所共有的方法。而且這樣的動作在每個地方都會發生,所以應該寫一個公用的物件來處理這件事情。
1: public static class EventLog {
2: public static string FilePath { get; set; }
3:
4: public static void Write(string format, params object[] arg) {
5: Write(string.Format(format, arg));
6: }
7:
8: public static void Write(string message) {
9: if (string.IsNullOrEmpty(FilePath)) {
10: FilePath = Directory.GetCurrentDirectory();
11: }
12: string filename = FilePath +
13: string.Format("\\{0:yyyy}\\{0:MM}\\{0:yyyy-MM-dd}.txt", DateTime.Now);
14: FileInfo finfo = new FileInfo(filename);
15: if (finfo.Directory.Exists == false) {
16: finfo.Directory.Create();
17: }
18: string writeString = string.Format("{0:yyyy/MM/dd HH:mm:ss} {1}",
19: DateTime.Now, message) + Environment.NewLine;
20: File.AppendAllText(filename, writeString, Encoding.Unicode);
21: }
22: }
其中第12行是將檔案依照/年/月/年-月-日.txt的方式設定檔案名稱,第15行使用這個檔案名稱的路徑部份建立資料夾。FileInfo的資料夾建立功能是可以直接建立子資料夾的,網上有些程式還很費力的一層層判斷、建立,那是錯的。
第4行是個多型,其實只是套用string.Format,我很多時候都會多寫一個這樣的多型方法,可以讓使用的程式碼再簡潔一點。
沒有留言:
張貼留言