C#操作日志


首先引用NLog的dll文件

using System.IO;

using NLog;

-------------------------------------------------------------------------------------------------------------------------------

基礎日志類

/// <summary>
/// 寫日志
/// </summary>
public class WriteLog
{
private static Logger logger = LogManager.GetCurrentClassLogger();
private static string filebasepath = AppDomain.CurrentDomain.BaseDirectory + "Logs\\";

/// <summary>
/// 寫日志
/// </summary>
/// <param name="log">日志內容</param>
public void WriteComLog(string log)
{
//記錄警告信息
logger.Warn(log);
}

/// <summary>
/// 根據名稱分類寫日志
/// </summary>
/// <param name="log">日志內容</param>
/// <param name="logname">日志類別名稱</param>
public void WriteComLog(string log, string logname)
{
Logger loggerByName = LogManager.GetLogger(logname);
//記錄一般信息
loggerByName.Info(log);
}

/// <summary>
/// 將信息寫入文件
/// </summary>
/// <param name="info">信息</param>
/// <param name="filename">文件名</param>
/// <param name="filefix">文件后綴名</param>
public void WriteFile(string info, string filename, string filefix)
{
try
{
//文件夾路徑
string _filebasepath = GetTodyRecordPath();
string filePath = string.Empty;

if (string.IsNullOrEmpty(filefix))
{
//日志文件路徑
filePath = _filebasepath + "\\" + filename + ".log";
}
else
{
filePath = _filebasepath + "\\" + filename + filefix;
}
//如果file文件夾不存在創建file文件夾
if (!System.IO.Directory.Exists(_filebasepath))
{
Directory.CreateDirectory(_filebasepath);
}
//如果文件不存在創建該文件
if (!File.Exists(filePath))
{
File.Create(filePath).Close();
}
StreamWriter sw = File.AppendText(filePath);
sw.Write(info);
sw.Close();
}
catch
{

}
}

/// <summary>
/// 將信息寫入文件
/// </summary>
/// <param name="info">信息</param>
/// <param name="filename">文件名</param>
/// <param name="filefix">文件后綴名</param>
/// <param name="childpath"></param>
public void WriteFile(string info, string filename, string filefix,string childpath)
{
try
{
string _filebasepath = GetTodyRecordPath()+childpath;
string filePath = string.Empty;

if (string.IsNullOrEmpty(filefix))
{
filePath = _filebasepath + "\\" + filename + ".log";
}
else
{
filePath = _filebasepath + "\\" + filename + filefix;
}

if (!System.IO.Directory.Exists(_filebasepath))
{
Directory.CreateDirectory(_filebasepath);
}
//如果文件不存在創建該文件
if (!File.Exists(filePath))
{
File.Create(filePath).Close();
}
//將日志文件追加到日志文件夾下
StreamWriter sw = File.AppendText(filePath);
//將日志的內容寫入日志文件中
sw.Write(info);
sw.Close();
}
catch
{

}
}

/// <summary>
/// 獲取當前日期文件夾
/// </summary>
/// <returns>createPath文件夾路徑</returns>
private string GetTodyRecordPath()
{
string createPath = string.Empty;
//如果不存在就創建file文件夾
if (Directory.Exists(filebasepath + DateTime.Now.Year.ToString()) == false)
{
//創建文件夾
Directory.CreateDirectory(filebasepath + DateTime.Now.Year.ToString());
//獲取文件夾路徑
createPath = DateTime.Now.Year.ToString() + @"\";
}

if (Directory.Exists(filebasepath + DateTime.Now.Year.ToString()+"/"+DateTime.Now.Month.ToString()) == false)
{
Directory.CreateDirectory(filebasepath + DateTime.Now.Year.ToString() + "/" + DateTime.Now.Month.ToString());
createPath = DateTime.Now.Year.ToString() + @"\"+DateTime.Now.Month.ToString()+@"\";
}

if (Directory.Exists(filebasepath + DateTime.Now.Year.ToString() + "/" + DateTime.Now.Month.ToString()+"/"+DateTime.Now.ToString("yyyyMMdd")) == false)
{
Directory.CreateDirectory(filebasepath + DateTime.Now.Year.ToString() + "/" + DateTime.Now.Month.ToString() + "/" +DateTime.Now.ToString("dd"));
createPath = DateTime.Now.Year.ToString() + @"\"+DateTime.Now.Month.ToString()+@"\"+DateTime.Now.ToString("dd")+"/";
}
createPath = filebasepath + DateTime.Now.Year.ToString() + @"\" + DateTime.Now.Month.ToString() + @"\" + DateTime.Now.ToString("dd") + @"\";
return createPath;
}

}

-----------------------------------------------------------------------------------------------------------------------------------

新寫一個類來調用基礎日志類(通過調用WriteLogs方法生成操作日志)

public void WriteLogs(string userName,string chineseName,string Information)
{
//定義調用common中WriteLog類的WriteFile方法的變量
string logstr = string.Empty;
string filefix=string.Empty;
string filename=string.Empty;
//日志文件的名稱
//filename="測試";
filename = DateTime.Now.ToString("yyyy-MM-dd");
//日志文件后綴名
filefix=".txt";
//日志文件的內容
logstr = string.Format("[{0}]\t{1}\t{2}\t{3}\r\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), userName ,chineseName,Information);

//調用WriteFile方法
if (logstr != null)
{
YnTravelSky.AOFIS.Common.WriteLog dt = new Common.WriteLog();
dt.WriteFile(logstr, filename, filefix);
}

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM