不管是Web應用還是Windows Forms 應用,系統日誌我們都經常用到。日誌可以協助我們跟蹤監視系統的健全狀態,及時發現錯誤,輸出調式資訊等。記錄日誌的方法很多,比如用文字檔、XML檔案、資料庫等。而用文字檔記錄日誌是最常用的方法之一。
這裡就是一個用文字檔記錄日誌的簡單實用的日誌類,它有如下幾個特點:
1)按日期每天生產不同記錄檔,方便按照日期來尋找日誌。
2)按日誌類型生產不同的檔案,比如 跟蹤資訊、警告資訊、錯誤資訊用不同的記錄檔來記錄;方便我們尋找指定類型的日誌。
3)可以指定保持記錄檔檔案夾,如果不指定記錄檔夾,Web應用儲存到Bin檔案夾,Windows Forms應用儲存到.EXE檔案所在的檔案夾。
4)可以指定記錄檔的首碼。
public class LogManager
{
private static string logPath = string.Empty;
/// <summary>
/// 儲存日誌的檔案夾
/// </summary>
public static string LogPath
{
get
{
if (logPath == string.Empty)
{
if (System.Web.HttpContext.Current == null)
// Windows Forms 應用
logPath = AppDomain.CurrentDomain.BaseDirectory;
else
// Web 應用
logPath = AppDomain.CurrentDomain.BaseDirectory + @"bin\";
}
return logPath;
}
set{ logPath = value;}
}
private static string logFielPrefix = string.Empty;
/// <summary>
/// 記錄檔首碼
/// </summary>
public static string LogFielPrefix
{
get { return logFielPrefix; }
set { logFielPrefix = value; }
}
/// <summary>
/// 寫日誌
/// </summary>
public static void WriteLog(string logFile, string msg)
{
try
{
System.IO.StreamWriter sw = System.IO.File.AppendText(
LogPath + LogFielPrefix + logFile + " " +
DateTime.Now.ToString("yyyyMMdd") + ".Log"
);
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss: ") + msg);
sw.Close();
}
catch
{ }
}
/// <summary>
/// 寫日誌
/// </summary>
public static void WriteLog(LogFile logFile, string msg)
{
WriteLog(logFile.ToString(), msg);
}
}
/// <summary>
/// 日誌類型
/// </summary>
public enum LogFile
{
Trace,
Warning,
Error,
SQL
}
使用方法:
LogManager.LogFielPrefix = "ERP ";
LogManager.LogPath = @"C:\";
LogManager.WriteLog(LogFile.Trace, "A test Msg.");