using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;
namespace CommonFunction
{
	/// <summary>
	/// CreateLogFile 的摘要说明。
	/// </summary>
	public class CreateLogFile : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.Label Label1;
		protected System.Web.UI.WebControls.TextBox txtNewLog;
		protected System.Web.UI.WebControls.Label Label2;
		protected System.Web.UI.WebControls.Button WriteToLogbtn;
		protected System.Web.UI.WebControls.TextBox txtLogContent;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			//读取日志文件内容
			txtLogContent.Text = logFileRead();
		}

		private String logFileRead() 
		{
			//从指定的目录以打开或者创建的形式读取日志文件
			FileStream fs  = new FileStream(Server.MapPath("upedFile")+"\\logfile.txt", FileMode.OpenOrCreate, FileAccess.Read);

			//定义输出字符串
			StringBuilder output = new StringBuilder();
			//初始化该字符串的长度为0
			output.Length = 0;
			//为上面创建的文件流创建读取数据流
			StreamReader read = new StreamReader(fs);
			//设置当前流的起始位置为文件流的起始点
			read.BaseStream.Seek(0, SeekOrigin.Begin);
			//读取文件
			while (read.Peek() > -1) 
			{
				//取文件的一行内容并换行
				output.Append(read.ReadLine() + "\n");
			}
			//关闭释放读数据流
			read.Close();
			//返回读到的日志文件内容
			return output.ToString();
		}

		public void WriteLogFile(String input)
		{	
			//指定日志文件的目录
			string fname = Server.MapPath("upedFile") + "\\logfile.txt";
			//定义文件信息对象
			FileInfo finfo = new FileInfo(fname);
        
			//判断文件是否存在以及是否大于2K
			if ( finfo.Exists && finfo.Length > 2048 )
			{
				//删除该文件
				finfo.Delete();
			}
			//创建只写文件流
			using(FileStream fs = finfo.OpenWrite())
			{
				//根据上面创建的文件流创建写数据流
				StreamWriter w = new StreamWriter(fs);
				//设置写数据流的起始位置为文件流的末尾
				w.BaseStream.Seek(0, SeekOrigin.End);
				//写入“Log Entry : ”
				w.Write("\nLog Entry : ");
				//写入当前系统时间并换行
				w.Write("{0} {1} \r\n", DateTime.Now.ToLongTimeString(),
					DateTime.Now.ToLongDateString());
				//写入日志内容并换行
				w.Write(input + "\n");
				//写入------------------------------------“并换行
				w.Write("------------------------------------\n");
				//清空缓冲区内容，并把缓冲区内容写入基础流
				w.Flush();
				//关闭写数据流
				w.Close();
			}
		}


		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.WriteToLogbtn.Click += new System.EventHandler(this.WriteToLogbtn_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		private void WriteToLogbtn_Click(object sender, System.EventArgs e)
		{
			//写日志文件
			WriteLogFile(txtNewLog.Text.Trim());
		}
	}
}
