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.
127 lines
4.2 KiB
C#
127 lines
4.2 KiB
C#
using Serilog;
|
|
using SlnMesnac.Serilog;
|
|
using System.Timers;
|
|
|
|
namespace SlnMesnac
|
|
{
|
|
/// <summary>
|
|
/// 启动类
|
|
/// </summary>
|
|
public class Program
|
|
{
|
|
//删除日志定时器
|
|
private static System.Timers.Timer deleteLogTimer;
|
|
|
|
private static SerilogHelper? serilogHelper;
|
|
|
|
/// <summary>
|
|
/// Main方法
|
|
/// </summary>
|
|
/// <param name="args"></param>
|
|
public static void Main(string[] args)
|
|
{
|
|
var host = CreateHostBuilder(args).Build();
|
|
// host.Run();
|
|
var hostTask = host.RunAsync();
|
|
serilogHelper = host.Services.GetRequiredService<SerilogHelper>();
|
|
Console.WriteLine("==========================上海物流AGV项目Web Api服务启动!==========================");
|
|
serilogHelper.Info("==========================上海物流AGV项目Web Api服务启动!==========================");
|
|
|
|
#region 定时删除日志
|
|
|
|
//DeleteLogsLogic();
|
|
//deleteLogTimer = new System.Timers.Timer(24 * 60 * 60 * 1000);
|
|
//deleteLogTimer.Elapsed += OnTimedEvent;
|
|
//deleteLogTimer.AutoReset = true;
|
|
//deleteLogTimer.Enabled = true;
|
|
|
|
#endregion 定时删除日志
|
|
|
|
while (true)
|
|
{
|
|
Console.ReadLine();
|
|
}
|
|
}
|
|
|
|
#region 定时删除日志处理
|
|
|
|
/// <summary>
|
|
/// 定时器触发的事件处理方法
|
|
/// </summary>
|
|
/// <param name="source"></param>
|
|
/// <param name="e"></param>
|
|
private static void OnTimedEvent(Object source, ElapsedEventArgs e)
|
|
{
|
|
DeleteLogsLogic();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 清除日志文件
|
|
/// </summary>
|
|
private static void DeleteLogsLogic()
|
|
{
|
|
try
|
|
{
|
|
// 获取当前程序运行目录下的 Log 文件夹
|
|
string logPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Logs");
|
|
|
|
// 检查 Log 文件夹是否存在
|
|
if (!Directory.Exists(logPath))
|
|
{
|
|
// 如果 Log 文件夹不存在,可以选择记录日志或者直接返回
|
|
Console.WriteLine($"Log 文件夹 {logPath} 不存在。");
|
|
return;
|
|
}
|
|
|
|
// 获取 Log 文件夹下的所有子文件夹
|
|
string[] logDirectories = Directory.GetDirectories(logPath);
|
|
|
|
foreach (string directoryPath in logDirectories)
|
|
{
|
|
string directoryName = Path.GetFileName(directoryPath);
|
|
if (!string.IsNullOrEmpty(directoryName) && DateTime.TryParse(directoryName, out DateTime directoryDate))
|
|
{
|
|
// 检查文件夹日期是否早于当前日期三天之前
|
|
if (directoryDate < DateTime.Now.AddDays(-3))
|
|
{
|
|
try
|
|
{
|
|
// 删除符合条件的文件夹
|
|
Directory.Delete(directoryPath, true);
|
|
Console.WriteLine($"已删除文件夹: {directoryPath}");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// 记录删除文件夹时的异常信息
|
|
Console.WriteLine($"删除文件夹 {directoryPath} 时出错: {ex.Message}");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// 记录整体操作的异常信息
|
|
Console.WriteLine($"执行删除日志逻辑时出错: {ex.Message}");
|
|
}
|
|
}
|
|
|
|
#endregion 定时删除日志处理
|
|
|
|
/// <summary>
|
|
/// CreateHostBuilder
|
|
/// </summary>
|
|
/// <param name="args"></param>
|
|
/// <returns></returns>
|
|
public static IHostBuilder CreateHostBuilder(string[] args) =>
|
|
Host.CreateDefaultBuilder(args)
|
|
.UseSerilog((context, config) =>
|
|
{
|
|
})
|
|
.ConfigureWebHostDefaults(webBuilder =>
|
|
{
|
|
webBuilder.UseUrls("http://0.0.0.0:7024");
|
|
webBuilder.UseStartup<Startup>();
|
|
});
|
|
}
|
|
} |