C#打印日志及日志管理--调用静态代码块初始化

C#目前小编还未了解到有什么打印日志的框架,今天小编在这里就提供一个简单的方法让你方便在C#中打印日志

  public static void Debug(string msg)
        {
     
            string saveFolder = "Log";
            try
            {
     
                string fileName = DateTime.Now.ToString("yyyy-MM-dd");
                string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, saveFolder);
                if (Directory.Exists(filePath) == false)
                {
     
                    Directory.CreateDirectory(filePath);
                }
                string fileAbstractPath = filePath + "\\" + fileName + ".log";
                FileStream fs = new FileStream(fileAbstractPath, FileMode.Append);
                StreamWriter sw = new StreamWriter(fs);
                string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
                msg = time + "  " + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName + ":   " + msg + System.Environment.NewLine;
                sw.Write(msg);
                sw.Flush();
                sw.Close();
                sw.Dispose();
                fs.Close();
                fs.Dispose();
            }
            catch (Exception ex)
            {
     
                Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\t 写入失败\n" + ex);
            }
        }

我们提供了这个Debug(string msg)的静态方法,你只要把要打印的内容提供给方法就可以打印了
它会在Debug文件夹中创建一个Log文件夹,并创建一个以当天日期的文件名.log日志文件

        static 类名称()
        {
     
            // 创建一个 DirectoryInfo 对象
            DirectoryInfo mydir = new DirectoryInfo("Log");
            // 获取目录中的文件以及它们的名称和大小
            FileInfo[] f = mydir.GetFiles();
            //日志文件数量大于15就删除一个,只启动检查一遍
            if (f.Length > 15)
            {
     
                f[0].Delete();
            }
        }

这里我们通过一个C#的静态代码块初始化代码,这段代码表示将扫描Log文件夹全部内容,如果内容文件超过15个了,那么将会删除最早的一个文件,确保log文件夹过多,此方法在应用运行时加载一次,和Java的static{}静态代码块一样

你可能感兴趣的:(C#,日志,C#,日志,静态代码块)