C# 程序日志记录LOG代码

本文介绍了一种在程序中实现日志记录的方法,通过自定义LOG类和FileIO类,可以方便地记录程序运行过程中的信息,便于后期查找BUG。示例代码展示了如何在需要记录的地方插入日志记录代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在程序集中创建log.txt的文本文档,用于记录程序运行流程及运行状态,在程序发布后方便查看BUG使用方式:在需要的地方插入代码 LOG.log("记录内容");举例:try{}catch(Excetion e){LOG.log(e.toString());}
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DriverSelfCertificationExamSys.Module
{
     public  class LOG
    {
        static public StringBuilder _log = new StringBuilder();
        static FileIO fio;
        static public int min = 0;
        static public int max = 10;
        //
        static LOG()
        {
            fio = new FileIO();
            fio.OpenWriteFile("log.txt");
        }
        static public void error(object str)
        {
            log("Erorr:"+str, 10);
        }
        static object syn = new object();
        static public void log(string str, int level)
        {
            if (str == null)
            {
                str = "null";
            }
            fio.WriteLine(DateTime.Now.ToLocalTime() + "->" + str + "\r\n");
        }
        public static void log(object p, int level)
        {
            log(p.ToString(), level);
        }
        static public void log(object str)
        {
            log(str, 0);
        }
    }
     public class FileIO
     {
         private FileStream fsr;
         private FileStream fsw;
         private StreamWriter sw;
         private StreamReader sr;
         // 创建用于读取文件行的文件流和StreamWriter对象
         public void OpenReadFile(string file)
         {
             if (!File.Exists(file))
             File.Create(file).Close();
             fsr = new FileStream(file, FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite);
             sr = new StreamReader(fsr);
         }
         public void Clear()
         {
             CloseWriteFile();
         }
         // 关闭读文件流
         public void CloseReadFile()
         {
             if (fsr != null)
                 fsr.Close();
         }
         // 创建用于向文件中追加行的文件流和StreamWriter对象
         public void OpenWriteFile(string file)
         {
             if (!File.Exists(file))  // 如果文件不存在,先创建这个文件
                 File.Create(file).Close();
             // 以追加模式打开这个文件
             fsw = new FileStream(file, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
             // 根据创建的FileStream对象来创建StreamWriter对象
             sw = new StreamWriter(fsw);
         }
         // 关闭写文件流
         public void CloseWriteFile()
         {
             if (fsw != null)
                 fsw.Close();
         }
         // 从文件中读取一行
         public string ReadLine()
         {
             if (sr.EndOfStream)  // 如果文件流指针已经指向文件尾部,返回null
                 return null;
             return sr.ReadLine();
         }
         // 向文件中追加一行字符串
         public void WriteLine(string s)
         {
             lock (sw)
             {
                 sw.WriteLine(s);
                 sw.Flush(); // 刷新写入缓冲区,使这一行对于读文件流可见
             }
         }
         // 用于判断文件流指针是否位于文件尾部
         public bool IsEof()
         {
             return sr.EndOfStream;
         }
     }
}

演示效果如图



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值