public class LogMrg
{
public static string oldfileName = "";
/// <summary>
///
/// </summary>
/// <param name="logcontent">日志内容</param>
/// <param name="filename">完全路径名(路径+文件名)</param>
public static void WriteLog(string logcontent,string filename)
{
WriteLogFile(logcontent, filename);
}
/// <summary>
/// 必须要在配置文件的节点 appSetting 下添加一个节点 fname.
/// </summary>
/// <param name="input"></param>
public static void WriteLogFile(string input)
{
if (oldfileName.Trim() == "")
{
oldfileName = ConfigurationManager.AppSettings["fname"].ToString();
}
FileInfo finfo = new FileInfo(oldfileName);

//如果文件大大小大于2M,则新建一个文件
if (finfo.Exists && finfo.Length > 20480)
{
oldfileName = oldfileName + DateTime.Now.ToString("yyyyMMddHHmmss")+".txt";
}
WriteLogFile(input, oldfileName);

}
/// <summary>
/// fname:指定日志文件的目录
/// </summary>
/// <param name="input">日志内容</param>
/// <param name="fname">完全路径名(路径+文件名)</param>
public static void WriteLogFile(string input,string fname)
{
//1 指定日志文件的目录 fname

//2 定义文件信息对象
FileInfo finfo = new FileInfo(fname);
/////判断文件是否存在以及是否大于2M
//if (finfo.Exists && finfo.Length > 20480)
//{
// fname = fname + DateTime.Now.ToString();
//}
//创建只写文件流
using (FileStream fs = finfo.OpenWrite())
{
//根据上面创建的文件流创建写数据流
StreamWriter w = new StreamWriter(fs);
//设置写数据流的起始位置为文件流的末尾
w.BaseStream.Seek(0, SeekOrigin.End);

//写入当前系统时间
w.Write("--{0} {1} ", DateTime.Now.ToLongTimeString(),DateTime.Now.ToLongDateString());
//写入日志内容
w.Write(input);
//并换行
w.WriteLine("\r\n");
//清空缓冲区内容,并把缓冲区内容写入基础流
w.Flush();
//关闭写数据流
w.Close();
}
}
}

//配置文件里的节点:<add key="fname" value="D:\\VSTest\\sjdb\\logfile.txt"/>

 作者:沐雪

文章均系作者原创或翻译,如有错误不妥之处,欢迎各位批评指正。本文版权归作者所有,如需转载恳请注明。
​​​ 为之网-热爱软件编程 http://www.weizhi.cc/​