using System; using System.IO; using System.Windows.Forms; namespace WCS_Client { public class Log { /// 日志文件的路径 private string fileLogPath; /// 日志文件的名称 private string dataFileName; public Log(string FileName, string filepath) { this.fileLogPath = filepath; this.dataFileName = FileName + ".txt"; //this.dataFileName = DateTime.Now.ToString("yyyyMMdd") + FileName + ".txt"; } /// /// 获取或设置日志文件的路径 /// public string FileLogPath { set { this.fileLogPath = value; } get { return this.fileLogPath; } } /// /// 获取或设置日志文件的名称 /// public string DataFileName { set { this.dataFileName = value; } get { return this.dataFileName; } } /// /// 向指定目录中的指定的文件中追加日志文件 /// /// 要写入的内容 public void WriteLog(string Message) { this.WriteLog(this.dataFileName, Message); } /// /// 向指定目录中的文件中追加日志文件,日志文件的名称将由传递的参数决定. /// /// 日志文件的名称,如:mylog.txt ,如果没有自动创建,如果存在将追加写入日志 /// 要写入的内容 public void WriteLog(string LogFileName, string Message) { //如果日志文件目录不存在,则创建 if (!Directory.Exists(this.fileLogPath)) { Directory.CreateDirectory(this.fileLogPath); } FileInfo finfo = new FileInfo(this.fileLogPath + LogFileName); try { FileStream fs = new FileStream(this.fileLogPath + LogFileName, FileMode.Append); StreamWriter strwriter = new StreamWriter(fs); try { strwriter.WriteLine(System.DateTime.Now.ToString() + " " + DateTime.Now.Millisecond.ToString().PadLeft(3, '0') + ": " + Message); strwriter.Flush(); } catch (Exception ee) { Console.WriteLine("日志文件写入失败信息:" + ee.ToString()); } finally { strwriter.Close(); strwriter = null; fs.Close(); fs = null; } } catch (Exception ee) { Console.WriteLine("日志文件没有打开,详细信息如下:" + ee.ToString()); } } } public class LogHelper { //private static Log _sys_Log = new Log("系统", "C:\\webapi日志\\");//Application.StartupPath + //private static string mappedPath = System.Web.Hosting.HostingEnvironment.MapPath("~/"); private static string mappedPath = Application.StartupPath; private static string dt = DateTime.Now.ToString("yyyyMMdd"); private static string fileName = dt + " 系统"; private static Log _sys_Log = new Log(fileName, mappedPath + "\\Logs\\"); public static Log Sys_Log { get { if (dt != DateTime.Now.ToString("yyyyMMdd")) { dt = DateTime.Now.ToString("yyyyMMdd"); _sys_Log = new Log(fileName, mappedPath + "\\Logs\\"); } return _sys_Log; } } } }