程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> C#寫入日志文本文件代碼

C#寫入日志文本文件代碼

編輯:C#基礎知識
實習到現在已經接近三個月了,由於是校企聯合培養計劃,所以沒有工資,所幸公司對於我們這些實習生並沒有什麼要求,剛開始我還覺得要做點什麼才能學得快,可是到了後來,發現公司安排給我們的任務並不緊要,也不算太難。

到現在大約接觸了2,3個模塊的設計和實現了,起初,在文件讀寫和記錄日志方面屢屢收到了批評,因外在大學的時候並沒有記錄日子的習慣,使得這個時候匆匆忙忙要養成在關鍵位置記錄日志的習慣變得有些困難,

起初我是使用了postsharp的第三方插件來記錄自己的運行日志的,可是後來發現在代碼移植方面,如果其他電腦沒有安裝postsharp會使得移植過程變得復雜,特別是在部署的時候增加復雜度。

現在在進行新的模塊的時候決定不再使用postsharp了,打算自己寫一個簡單的記錄日志的類,來記錄在關鍵位置的操作。



不廢話,直接出代碼,代碼比較簡單,實現的功能也非常簡單。

可以直接復制粘貼來使用,同時,我也提供了源碼給像我一樣的初學者下載。


using System;
using System.IO;

namespace CustomerLog
{

/// <summary>
/// 保存日志
/// </summary>
public class Logging
{
#region 日志分類
/// <summary>
/// 保存普通日志
/// </summary>
/// <param name="message"></param>
public static void Writelog(string message)
{
string logContent = string.Format("[{0}] =>{1}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), message);
SetFile(@"Log.txt", logContent);
}

/// <summary>
/// 保存關鍵日志
/// </summary>
/// <param name="message"></param>
public static void WriteKeylog(string message)
{
var logContent = string.Format("[{0}]=>{1}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), message);
SetFile(@"KeyLog.txt", logContent);
}

/// <summary>
/// 保存錯誤信息日志
/// </summary>
/// <param name="ex"></param>
public static void WriteBuglog(Exception ex)
{
var logContent = string.Format("[{0}]錯誤發生在:{1},\r\n 內容:{2}",
DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), ex.Source, ex.Message);
logContent += string.Format("\r\n [{0}] 跟蹤:{1}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"),
ex.StackTrace);
SetFile(@"BugLog.txt", logContent);
}
#endregion

#region 通用操作
/// <summary>
/// 標准化寫入過程,繼承之後可自定義寫入內容
/// 默認保存在debug目錄的Log目錄下
/// </summary>
/// <param name="filename">文件名</param>
/// <param name="logContent">寫入內容</param>
protected static void SetFile(string filename, string logContent)
{
Isexist(); // 判斷Log目錄是否存在
string errLogFilePath = Environment.CurrentDirectory + @"\Log\" + filename.Trim();
StreamWriter sw;
if (!File.Exists(errLogFilePath))
{
FileStream fs1 = new FileStream(errLogFilePath, FileMode.Create, FileAccess.Write);
sw = new StreamWriter(fs1);
}
else
{
sw = new StreamWriter(errLogFilePath, true);
}
sw.WriteLine(logContent);
sw.Flush();
sw.Close();
}

// 判斷是否存在日志文件
private static void Isexist()
{
string path = Environment.CurrentDirectory + @"\Log\";
if (!File.Exists(path))
{
Directory.CreateDirectory(path);
}
}
#endregion
}
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved