You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
2.1 KiB
C#

2 years ago
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using System;
using System.IO;
using System.Linq;
using System.Timers;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
namespace Khd.Core.Api
{
public class Program
{
public static void Main(string[] args)
{
#region <20><>ʱɾ<CAB1><C9BE><EFBFBD><EFBFBD>־
// <20><><EFBFBD>ö<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>24Сʱ<D0A1><CAB1>86400000<30><30><EFBFBD>
System.Timers.Timer timer = new System.Timers.Timer(86400000);
timer.Elapsed += TimerElapsed;
timer.AutoReset = true;
timer.Start();
// <20><><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DeleteOldLogFiles();
#endregion
CreateHostBuilder(args).Build().Run();
}
private static void TimerElapsed(object sender, ElapsedEventArgs e)
{
DeleteOldLogFiles();
}
public static IHostBuilder CreateHostBuilder(string[] args)
{
return Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseUrls("http://0.0.0.0:5001");
webBuilder.UseStartup<Startup>();
});
}
private static void DeleteOldLogFiles()
{
string logDirectory = AppDomain.CurrentDomain.BaseDirectory + "logs"; // <20>滻Ϊʵ<CEAA>ʵ<EFBFBD><CAB5><EFBFBD>־<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>·<EFBFBD><C2B7>
DateTime cutoffDate = DateTime.Now.AddDays(-3); // 3<><33>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
try
{
DirectoryInfo dirInfo = new DirectoryInfo(logDirectory);
// <20><>ȡ<EFBFBD><C8A1>־<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
FileInfo[] logFiles = dirInfo.GetFiles("*.log")
.Where(file => file.LastWriteTime < cutoffDate)
.ToArray();
foreach (var file in logFiles)
{
// ɾ<><C9BE><EFBFBD>ļ<EFBFBD>
file.Delete();
Console.WriteLine($"<22><>ɾ<EFBFBD><C9BE><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>{file.Name}");
}
}
catch (Exception ex)
{
Console.WriteLine($"ɾ<><C9BE><EFBFBD><EFBFBD>־<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>{ex.Message}");
}
}
}
}