您的位置:首页 > 编程语言 > C#

C#读写日志文本文件

2008-07-08 14:53 405 查看
日志为文本文件

每列以制表符隔开 行以换行符隔开

本次示例简单实现如下相关功能:

1.正写日志文本 最新的日志放后面

2.倒写日志文本 最新的日志放前面

3.读日志文本内容显示在Label

4.读日志文本内容到DataTable 及 筛选后显示在GridView

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

(以下操作并没有考虑相关如文件不存在等异常)

//1.正写日志 最新日志放最后面

protected void Button1_Click(object sender, EventArgs e)

{

    string strFilePath = Server.MapPath("log/log_200807_1.txt");

    System.IO.FileStream fs = new System.IO.FileStream(strFilePath, System.IO.FileMode.Append);

    System.IO.StreamWriter sw = new System.IO.StreamWriter(fs, System.Text.Encoding.Default);

    sw.WriteLine("'" + DateTime.Now.ToString() + "'/t'zhangsan'/t'Login.aspx'/t'登录A'");

    sw.Close();

    fs.Close();

}

//2.倒写日志 最新日志放最前面

protected void Button2_Click(object sender, EventArgs e)

{

    string strFilePath = Server.MapPath("log/log_200807_1.txt");

    string strOldText = File.ReadAllText(strFilePath, System.Text.Encoding.Default);

    File.WriteAllText(strFilePath, "'" + DateTime.Now.ToString() + "'/t'zhangsan'/t'Login.aspx'/t'登录B'/r/n", System.Text.Encoding.Default);

    File.AppendAllText(strFilePath, strOldText, System.Text.Encoding.Default);

}

//3.读日志文本到Label

protected void Button3_Click(object sender, EventArgs e)

{

    string strFilePath = Server.MapPath("log/log_200807_1.txt");

    FileStream fs = new FileStream(strFilePath, FileMode.Open, FileAccess.Read);

    StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default);

    string strLine = sr.ReadLine();

    string str = "";

    while (strLine != null)

    {

        str += strLine.ToString() + "<br/>";

        strLine = sr.ReadLine();

    }

    sr.Close();

    fs.Close();

    this.Label1.Text = str;

}

//4.读日志文本内容到DataTable及筛选后显示在GridView

protected void Button4_Click(object sender, EventArgs e)

{

    DataTable dt = new DataTable();

    dt.Columns.Add("日志时间");

    dt.Columns.Add("操作人员");

    dt.Columns.Add("日志页面");

    dt.Columns.Add("日志内容");

   

    string strFilePath = Server.MapPath("log/log_200807_1.txt");

    FileStream fs = new FileStream(strFilePath, FileMode.Open, FileAccess.Read);

    StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default);

    string strLine = sr.ReadLine();

   

    while (strLine != null)

    {

        string[] strArray = new string[4];

        strArray = strLine.Split('/t');

        DataRow dr = dt.NewRow();

        dr[0] = strArray[0];

        dr[1] = strArray[1];

        dr[2] = strArray[2];

        dr[3] = strArray[3];

        dt.Rows.Add(dr);

        strLine = sr.ReadLine();

    }

    sr.Close();

    fs.Close();

    //筛选

    DataView dv = dt.DefaultView;

    dv.RowFilter = " 日志内容 Like '%A%' and 日志时间 >= '2008-7-8 14:12:50' ";

    //this.GridView1.DataSource = dt;

    this.GridView1.DataSource = dv;

    this.GridView1.DataBind();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# string button object null