using System;
using System.IO;
using System.Text;
namespace PrintLog
{
public class Util
{
/*
* 在這裡使用單例模式有幾個好處:
* 1.保證了全局對象的唯一性
* 2.保證了線程安全
*/
public static readonly FaceLog Instance = new FaceLog();
//這裡提供了一個供外部通路本class的靜态方法,可以直接通路
public static FaceLog GetInstance()
{
return Instance;
}
#region 公共屬性
public string FileStartupPath
{
//擷取目前運作程式的目錄
get { return Environment.CurrentDirectory; }
}
public string FileLogName
{
get
{
// 檔案全路徑
return FileStartupPath + @"\Logs\Info_" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
}
}
#endregion
/// <summary>
/// 寫入内容
/// </summary>
/// <param name="infoMsg">要寫入的資訊</param>
public void AppendInfoLog(string infoMsg)
{
string Folder = FileStartupPath + @"\Logs";
if (!System.IO.Directory.Exists(Folder))
System.IO.Directory.CreateDirectory(Folder);
using (TextWriter fw = new StreamWriter(FileInfoName, true))
{
try
{
FileInfo fi = new FileInfo(FileInfoName);
//判斷檔案内是否有内容
if (fi.Length == 0)
{
fw.WriteLine("這是第一次寫入内容");
}
fw.WriteLine("===========" + DateTime.Now.ToString() + "===========");
fw.WriteLine(infoMsg);
fw.WriteLine("======================");
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
finally
{
fw.Close();
fw.Dispose();
}
}
}
}
}