C# -linux下Log的自动删除 C# -linux下Log的自动删除
对log的操作其实也就两部分,找到log,判断log生成时间是否超出规定时间,是则删除,下面是代码实现,大家如果有相似问题,可以借鉴一下,也欢迎在品论区留下更好的解决方案。
public static void ClearLog() { string logPath = AppDomain.CurrentDomain.BaseDirectory+ "Logs"; //获取到更目录下的logs文件夹 if (!Directory.Exists(logPath)) { return; } DirectoryInfo folder = new DirectoryInfo(logPath); FileSystemInfo[] files = folder.GetFileSystemInfos(); //获取文件夹 if (files == null) { return; } foreach (FileSystemInfo file in files) { string path_log_url = file.FullName; if (!Directory.Exists(path_log_url)) { continue; } DirectoryInfo folder_base = new DirectoryInfo(path_log_url); FileInfo[] files_base = folder_base.GetFiles("*.txt"); //获取.txt文件 foreach (var file_txt in files_base) { //获取文件创建时间 DateTime fileCreateTime = file_txt.LastWriteTime; //获取当前时间 DateTime now = DateTime.Now; int createMonth = fileCreateTime.Month; int nowMonth = now.Month; int distance = nowMonth - createMonth; distance = distance >= 0 ? distance : (distance + 12); 时间差 if (distance < 3) { //小于三个月不删除 continue; } try { File.Delete(file_txt.FullName); } catch { throw new Exception("删除日志文件出现异常"); } } }
在Linux上winds上测试都能完成Log的删除。