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.Diagnostics;
using System.IO;
namespace CommonFunction.文件操作
{
	/// <summary>
	/// getSysLog 的摘要说明。
	/// </summary>
	public class getSysLog : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.HyperLink hypeSysLog;
		protected System.Web.UI.WebControls.Button btnGetSysLog;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			// 在此处放置用户代码以初始化页面
		}

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

		}
		#endregion

		private void btnGetSysLog_Click(object sender, System.EventArgs e)
		{
			string fname = Server.MapPath("upedFile") + "\\logfile.txt";
			//定义文件信息对象
			FileInfo finfo = new FileInfo(fname);
			

			//定义系统日志对象
			EventLog aLog = new EventLog();
			aLog.Log = "System";
			aLog.MachineName = Environment.MachineName;  // Local machine

			Response.Write("<p><h3><font color=red>在系统日志中有" + aLog.Entries.Count + 
				"条记录</font></h3></p>");

			using(FileStream fs = finfo.OpenWrite())
			{
				//根据上面创建的文件流创建写数据流
				StreamWriter w = new StreamWriter(fs);
				//设置写数据流的起始位置为文件流的末尾
				w.BaseStream.Seek(0, SeekOrigin.End);
				foreach (EventLogEntry entry in aLog.Entries) 
				{		
					//写入日志内容并换行
					w.Write("{0} {1} {2}\r\n", entry.TimeGenerated.ToString(),
						entry.Source,entry.EventID.ToString());
				}
				
				//清空缓冲区内容，并把缓冲区内容写入基础流
				w.Flush();
				//关闭写数据流
				w.Close();
			}
			hypeSysLog.Visible = true;
			hypeSysLog.NavigateUrl = Server.MapPath("upedFile") + "\\logfile.txt";
		}

	}
}
