[C#] Log 日誌在手,問題出走! -JY. MN 軟實力
介紹
日誌(Log)這功能主要依程式設計需求,紀錄必要性的資料、數據與標籤,用途非常廣泛,可用於程式除錯、驗證結果與功能、程式判斷依據、是否有完整執行該段函式、是否有正常接收資訊、是否有正常發送資訊...等等的用途。對於程式設計者而言,程式驗證、除錯都有相當大的幫助。
對於大型專案使用者而言,軟體運行的細節面非常重要,然而這些細節面必需要仰賴 Log 來記錄,證明每個環節是否正常運行。
這次使用基本的記事本(文字文件)當成紀錄 Log 的檔案類型。在設定上,每天會建立一個記事本檔案,而每筆 Log 都會在內容後面紀錄電腦當下的時間,來表示發生當下的事情與時間。以下分別示範讀取與寫入兩個函式(Function):
說明
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace EX_Log
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
FlowControl();
}
public void FlowControl()
{
WriteLog("使用者註冊一般權限帳號");
WriteLog("使用者ID:abcdef PS:123456 已於資料庫建檔");
WriteLog("使用者完成註冊一般權限帳號");
ReadLog(DateTime.Now.ToString("yyyMMdd"));
}
/// /// Log 寫入
/// /// 內容
public void WriteLog(string sMessage)
{
// Windows Forms 應用程式
//string DirName = Appliaction.StartupPath + @"\Log\";
// 主控台應用程式
string DirName = AppDomain.CurrentDomain.BaseDirectory + @"\Log\";
string FileName = DirName + DateTime.Now.ToString("yyyMMdd") + ".txt";
// 檢查該資料夾是否存在
if (!Directory.Exists(DirName))
Directory.CreateDirectory(DirName);
// 檢查該檔案是否存在
if (!File.Exists(FileName))
// 該檔案被建立完畢後,必須關閉 FileStream.
File.Create(FileName).Close();
using (StreamWriter sw = File.AppendText(FileName))
sw.WriteLine("{0} {1}", sMessage, DateTime.Now.ToLongTimeString());
}
/// /// Log 讀取
/// /// 讀取日期 yyyyMMdd
public void ReadLog(string sDate)
{
// Windows Forms 應用程式
//string DirName = Appliaction.StartupPath + @"\Log\";
// 主控台應用程式
string DirName = AppDomain.CurrentDomain.BaseDirectory + @"\Log\";
string FileName = DirName + sDate + ".txt";
if (File.Exists(FileName))
{
using (StreamReader sr = File.OpenText(FileName))
{
string line;
// 確認每一行都有內容的情況,才會進行顯示。
while ((line = sr.ReadLine()) != null)
txb_Log.AppendText(line + "\n");
}
}
else
{
MessageBox.Show(sDate + ": No Data!");
}
}
}
}
結論
以上範例表示單純的讀取、寫入的函式(Function),自行複製更改路徑後即可服用。相信未來讀者們在職場所接到的專案中,都會有必須要記錄 Log 的動作,此時可套用這兩個獨立的函式來快速建立簡易的 Log 功能。

留言
張貼留言