2018-01-16 22:44:35
許多程序需要記錄運行日志,這就需要將程序運行記錄寫入本機,一般是.txt 文本或.csv 文件。具體操作如下:
一、C#
1 //加入外部輸入輸出的命名空間 2 using System.IO;
1 static void Main(string[] args) 2 { 3 WriteLog("白日依山盡"); 4 WriteLog("黃河入海流"); 5 WriteLog("欲窮千里目"); 6 WriteLog("更上一層樓"); 7 Console.ReadKey(); 8 } 9 static void WriteLog(string workinfo) 10 { 11 //保存運行日志到程序運行文件夾下,並以當前日期命名 12 string strpath = Directory.GetCurrentDirectory()+ @"\worklog\" + DateTime.Now.ToString("yyyyMMdd") + ".csv"; 13 //獲取strpath的文件夾名稱,並判斷不存在是創建文件夾 14 if (!Directory.Exists(Path.GetDirectoryName(strpath))) 15 { 16 Directory.CreateDirectory(Path.GetDirectoryName(strpath)); 17 } 18 //判斷文件不存在時,創建該文件 19 if (!File.Exists(strpath)) 20 { 21 File.Create(strpath).Close();//創建完畢后,需關閉該IO通道,以使后續讀寫可繼續進行 22 } 23 //使用數據流寫入StreamWriter,true表示可持續寫入,Encoding.Default前系統設置的默認字符集編碼方式 24 StreamWriter sw = new StreamWriter(strpath, true, Encoding.Default); 25 sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss " + workinfo)); 26 //銷毀數據數據流通道 27 sw.Dispose(); 28 // 29 Console.WriteLine("寫入成功"); 30 }
二、VB.NET
1 Imports System.IO '外部輸出的命名空間 2 Imports System.Text '文本編碼格式的命名空間
1 Sub Main() 2 WriteLog("白日依山盡") 3 WriteLog("黃河入海流") 4 WriteLog("欲窮千里目") 5 WriteLog("更上一層樓") 6 Console.ReadKey() 7 End Sub 8 Sub WriteLog(ByVal workinfo As String) 9 '保存運行日志到程序運行文件夾下,並以當前日期命名 10 Dim strpath As String = Directory.GetCurrentDirectory() & "\worklog\" & Now.ToString("yyyyMMdd") & ".csv" 11 '獲取strpath的文件夾名稱,並判斷不存在是創建文件夾 12 If (Not Directory.Exists(Path.GetDirectoryName(strpath))) Then 13 Directory.CreateDirectory(Path.GetDirectoryName(strpath)) 14 End If 15 '判斷文件不存在時,創建該文件 16 If (Not File.Exists(strpath)) Then 17 File.Create(strpath).Close() '創建完畢后,需關閉該IO通道,以使后續讀寫可繼續進行 18 End If 19 '使用數據流寫入StreamWriter,true表示可持續寫入,Encoding.Default前系統設置的默認字符集編碼方式 20 Dim sw As StreamWriter = New StreamWriter(strpath, True, Encoding.Default) 21 sw.WriteLine(Now.ToString("yyyy-MM--dd HH:mm:ss ") & workinfo) 22 '銷毀數據數據流通道 23 sw.Dispose() 24 Console.WriteLine("寫入成功") 25 End Sub
三、效果如下: