博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
写入文件日志方式
阅读量:5085 次
发布时间:2019-06-13

本文共 2899 字,大约阅读时间需要 9 分钟。

private static readonly object _LockObject = new object();         private static Random _Random = new Random();        private static DateTime _LastDeleteTime = DateTime.Now;       //文件夹名称 _FilePath=@"Logs"    文件名  _FileName,         public static void WriteLog(string _FilePath, string _FileName, string _Msg)        {            lock (_LockObject)            {                try                {                    var _Path = AppDomain.CurrentDomain.BaseDirectory + _FilePath + @"\";                    if (!Directory.Exists(_Path))                    {                        Directory.CreateDirectory(_Path);                    }                    _FileName = _FileName + "_" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt";if (_Random.Next(10) >= 9 && File.Exists(_Path + _FileName))                    {                        FileInfo fileInfo = new FileInfo(_Path + _FileName);                        if (fileInfo.Length > 10485760)//10M                        {                            fileInfo.MoveTo(_Path + _FileName.Replace(".", string.Format("_{0}.", DateTime.Now.ToString("HHmmss"))));                        }                    }                    System.IO.StreamWriter _Writer = new System.IO.StreamWriter                         (                            _Path + _FileName,                            true,                            System.Text.Encoding.Default                         );                    _Writer.WriteLine(string.Concat("[", DateTime.Now.ToString("HH:mm:ss"), "]  ", _Msg, "\n\n"));                    _Writer.Close();//  删除超过15天的日志                    if ((DateTime.Now.Day != _LastDeleteTime.Day))                    {                        _LastDeleteTime = DateTime.Now;                        var files = Directory.GetFiles(_Path);                        foreach (var file in files.Where(t => t.EndsWith(".txt")))                        {                            var fileInfo = new FileInfo(file);                            if (!IsRealMatch(fileInfo.Name.ToLower(), "_[0-9]{4}[-][0-9]{2}[-][0-9]{2}[^.]{0,20}[.]txt"))                            {                                continue;                            }                            if ((DateTime.Now - fileInfo.LastWriteTime).TotalDays > 15)                            {                                File.Delete(file);                            }                        }                    }                                   }catch                 { }            }        }public static bool IsRealMatch(string inputInfo, string strInfo)        {            return IsMatch(inputInfo, strInfo, RegexOptions.IgnoreCase | RegexOptions.Singleline);        } public static bool IsMatch(string inputInfo, string strInfo, RegexOptions options)        {            return Regex.IsMatch(inputInfo, strInfo, options);        }

 

转载于:https://www.cnblogs.com/Warmsunshine/p/9699363.html

你可能感兴趣的文章
九九乘法
查看>>
课程管理系统
查看>>
C++ 函数对象
查看>>
STM32F407 跑马灯 库函数版 个人笔记
查看>>
Delphi XE7 用indy开发微信公众平台(6)- 被动回复用户消息
查看>>
Python -- 正则表达式 regular expression
查看>>
Unity Alpha融合参数(便查)
查看>>
[转载]漫谈游戏中的阴影技术
查看>>
FatMouse and Cheese
查看>>
MDX Step by Step 读书笔记(六) - Building Complex Sets (复杂集合的处理) - Filtering Sets
查看>>
Java开发代码性能优化总结
查看>>
php 获取某个月的周次信息
查看>>
redis 随笔
查看>>
Java重写《C经典100题》 --30
查看>>
线程池
查看>>
饭店点餐系统
查看>>
bzoj2259 [Oibh]新型计算机
查看>>
centos7下部署iptables环境纪录(关闭默认的firewalle)
查看>>
Sed与Awk 学习笔记
查看>>
【Android Studio】Gradle配置及问题解决
查看>>