zoukankan      html  css  js  c++  java
  • C#读写日志文本文件

    日志为文本文件
    每列以制表符隔开 行以换行符隔开

    本次示例简单实现如下相关功能:
    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();
    }

  • 相关阅读:
    antdesign vue 官网地址
    WMS智能仓储管理系统-干货-产品介绍
    C# 判断文件夹与文件是否存在
    C# 获取文件大小,创建时间,文件信息,FileInfo类的属性表
    问题2:采购发票、材料出库单、到货单,打开时提示某某插件是否安装! 问题
    问题一:u813.0销售出库单-EAI接口报-在对应所需名称或序数的集合中,未找到项目
    SqlServer数据库sa登录失败,错误18456
    解决<compilation debug="true" targetFramework="4.0"> 问题
    SQL Server 2005无法远程连接的解决方法
    Windows Server 2008 IIS 7.5 HTTP 错误 404.3
  • 原文地址:https://www.cnblogs.com/freeliver54/p/1238177.html
Copyright © 2011-2022 走看看