using XFEExtension.NetCore.ServerInteractive.Attributes; using XFEExtension.NetCore.ServerInteractive.Utilities.Helpers; using System.Globalization; namespace XFEExtension.NetCore.ServerInteractive.Utilities.Server.Services.CoreService; /// /// 核心日志服务 /// public partial class CoreLogService : ServerCoreUserServiceBase { /// /// 获取日志权限 /// public int GetPermission { get; set; } /// /// 清理日志权限 /// public int ClearPermission { get; set; } /// /// 获取服务器日志 /// [EntryPoint("log/get")] public async Task GetLog() { Console.Write("获取服务器日志请求"); UserHelper.ValidatePermission(Json?["session"]?.GetString(), Json?["deviceInfo"]?.GetString(), ReturnArgs.ClientIP, GetPermission, GetEncryptedUserLoginModelFunction(), GetUserFunction(), ReturnArgs); if (!DateTimeOffset.TryParse(Json?["startDateTime"]?.GetString(), CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out var startDatetime)) throw Error("起始日期必须为 ISO-8601 格式"); if (!DateTimeOffset.TryParse(Json?["endDateTime"]?.GetString(), CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out var endDatetime)) throw Error("结束日期必须为 ISO-8601 格式"); await Close(XFEConsole.XFEConsole.Log.Export(startDatetime.UtcDateTime, endDatetime.UtcDateTime)); } /// /// 清除服务器日志 /// [EntryPoint("log/clear")] public void ClearLog() { Console.Write("清除服务器日志请求"); UserHelper.ValidatePermission(Json?["session"]?.GetString(), Json?["deviceInfo"]?.GetString(), ReturnArgs.ClientIP, ClearPermission, GetEncryptedUserLoginModelFunction(), GetUserFunction(), ReturnArgs); if (File.Exists("server.log")) File.Delete("server.log"); XFEConsole.XFEConsole.Log.Clear(); OK(); } }