😎1、日志结果默认不裁剪 2、优化日志存储 3、优化生成获取所有列方法 4、其他优化

This commit is contained in:
zuohuaijun 2025-01-11 15:25:15 +08:00
parent 320e23a054
commit 3d1f77dc94
10 changed files with 39 additions and 30 deletions

View File

@ -34,12 +34,12 @@
"DefaultIndex": "adminnet" //
},
"Monitor": {
"GlobalEnabled": true, //
"GlobalEnabled": true, //
"IncludeOfMethods": [], // GlobalEnabled=false
"ExcludeOfMethods": [], // GlobalEnabled=true
"BahLogLevel": "Information", // Oops.Oh Oops.Bah
"WithReturnValue": true, // true
"ReturnValueThreshold": 500, // 0
"ReturnValueThreshold": 0, // 0
"JsonBehavior": "None", // JsonNone(OnlyJsonAll)
"JsonIndented": false, // Json
"UseUtcTimestamp": false, // UTCLOCAL

View File

@ -49,7 +49,7 @@
<PackageReference Include="SSH.NET" Version="2024.2.0" />
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.5.1" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
<PackageReference Include="TencentCloudSDK.Sms" Version="3.0.1160" />
<PackageReference Include="TencentCloudSDK.Sms" Version="3.0.1161" />
<PackageReference Include="UAParser" Version="3.1.47" />
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
</ItemGroup>

View File

@ -76,11 +76,6 @@ public class ConfigConst
/// </summary>
public const string SysTenantHostLogin = "sys_tenant_host_login";
/// <summary>
/// 数据校验日志
/// </summary>
public const string SysValidationLog = "sys_validation_log";
/// <summary>
/// 行政区划同步层级 1-省级,2-市级,3-区县级,4-街道级,5-村级
/// </summary>

View File

@ -54,7 +54,10 @@ public class AppEventSubscriber : IEventSubscriber, ISingleton, IDisposable
//var mailTemp = File.ReadAllText(mailTempPath);
//var mail = await _serviceScope.ServiceProvider.GetRequiredService<IViewEngine>().RunCompileFromCachedAsync(mailTemp, );
var webTitle = await _serviceScope.ServiceProvider.GetRequiredService<SysConfigService>().GetConfigValueByCode<string>(ConfigConst.SysWebTitle);
var _sysConfigService = _serviceScope.ServiceProvider.GetRequiredService<SysConfigService>();
if (!await _sysConfigService.GetConfigValueByCode<bool>(ConfigConst.SysErrorMail)) return;
var webTitle = await _sysConfigService.GetConfigValueByCode<string>(ConfigConst.SysWebTitle);
var title = $"{webTitle} 系统异常";
await _serviceScope.ServiceProvider.GetRequiredService<SysEmailService>().SendEmail(JSON.Serialize(context.GetPayload<string>()), title);
}

View File

@ -80,9 +80,6 @@ public class DatabaseLoggingWriter : IDatabaseLoggingWriter, IDisposable
}
var loggingMonitor = JSON.Deserialize<dynamic>(jsonStr);
// 记录数据校验日志
if (loggingMonitor.validation != null && !await _sysConfigService.GetConfigValueByCode<bool>(ConfigConst.SysValidationLog)) return;
// 获取当前操作者
string account = "", realName = "", userId = "", tenantId = "";
if (loggingMonitor.authorizationClaims != null)
@ -98,11 +95,12 @@ public class DatabaseLoggingWriter : IDatabaseLoggingWriter, IDisposable
var remoteIPv4 = ((JArray)loggingMonitor.requestHeaders).OfType<JObject>()
.FirstOrDefault(header => (string)header["key"] == "X-Forwarded-For")?["value"]?.ToString();
// 获取IP地理位置
if (string.IsNullOrEmpty(remoteIPv4))
remoteIPv4 = loggingMonitor.remoteIPv4;
(string ipLocation, double? longitude, double? latitude) = CommonUtil.GetIpAddress(remoteIPv4);
// 获取设备信息
var browser = "";
var os = "";
if (loggingMonitor.userAgent != null)
@ -149,10 +147,7 @@ public class DatabaseLoggingWriter : IDatabaseLoggingWriter, IDisposable
}).ExecuteCommandAsync();
// 将异常日志发送到邮件
if (await _sysConfigService.GetConfigValueByCode<bool>(ConfigConst.SysErrorMail))
{
await _eventPublisher.PublishAsync(CommonConst.SendErrorMail, logMsg.Exception ?? loggingMonitor.exception);
}
await _eventPublisher.PublishAsync(CommonConst.SendErrorMail, logMsg.Exception ?? loggingMonitor.exception);
return;
}

View File

@ -32,7 +32,6 @@ public class SysConfigSeedData : ISqlSugarEntitySeedData<SysConfig>
new SysConfig{ Id=1300000000201, Name="发送异常日志邮件", Code=ConfigConst.SysErrorMail, Value="False", SysFlag=YesNoEnum.Y, Remark="是否发送异常日志邮件", OrderNo=110, GroupCode=ConfigConst.SysDefaultGroup, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
new SysConfig{ Id=1300000000211, Name="域登录验证", Code=ConfigConst.SysDomainLogin, Value="False", SysFlag=YesNoEnum.Y, Remark="是否开启域登录验证", OrderNo=120, GroupCode=ConfigConst.SysDefaultGroup, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
new SysConfig{ Id=1300000000221, Name="租户隔离登录验证", Code=ConfigConst.SysTenantHostLogin, Value="False", SysFlag=YesNoEnum.Y, Remark="租户隔离登录验证", OrderNo=130, GroupCode=ConfigConst.SysDefaultGroup, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
new SysConfig{ Id=1300000000231, Name="数据校验日志", Code=ConfigConst.SysValidationLog, Value="True", SysFlag=YesNoEnum.Y, Remark="是否数据校验日志", OrderNo=140, GroupCode=ConfigConst.SysDefaultGroup, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
new SysConfig{ Id=1300000000241, Name="行政区划同步层级", Code=ConfigConst.SysRegionSyncLevel, Value="3", SysFlag=YesNoEnum.Y, Remark="行政区划同步层级 1-省级,2-市级,3-区县级,4-街道级,5-村级", OrderNo=150, GroupCode=ConfigConst.SysDefaultGroup, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
// 新业务系统记得更改密匙,通过接口(http://localhost:5005/api/sysCommon/smKeyPair)获取
new SysConfig{ Id=1300000000251, Name="国密SM2密匙", Code=ConfigConst.SysSM2Key, Value="04851D329AA3E38C2E7670AFE70E6E70E92F8769CA27C8766B12209A0FFBA4493B603EF7A0B9B1E16F0E8930C0406EA0B179B68DF28E25334BDEC4AE76D907E9E9;3A61D1D30C6302DABFF36201D936D0143EEF0C850AF28C5CA6D5C045AF8C5C8A", SysFlag=YesNoEnum.Y, Remark="国密SM2密匙", OrderNo=160, GroupCode=ConfigConst.SysDefaultGroup, CreateTime=DateTime.Parse("2024-11-21 00:00:00") },

View File

@ -222,32 +222,49 @@ public class SysCodeGenService : IDynamicApiController, ITransient
var entityType = provider.DbMaintenance.GetTableInfoList(false).FirstOrDefault(u => u.Name == tableName);
if (entityType == null) return null;
var entityBasePropertyNames = _codeGenOptions.EntityBaseColumn[nameof(EntityTenant)];
var properties = GetEntityInfos().Result.First(u => u.DbTableName.ToLower() == tableName.ToLower()).Type.GetProperties()
.Where(e => e.GetCustomAttribute<SugarColumn>()?.IsIgnore == false).Select(u => new
tableName = GetRealTableName(tableName);
var properties = GetEntityInfos().Result.First(u => GetRealTableName(u.DbTableName).EqualIgnoreCase(tableName)).Type.GetProperties()
.Where(u => u.GetCustomAttribute<SugarColumn>()?.IsIgnore == false).Select(u => new
{
PropertyName = u.Name,
ColumnComment = u.GetCustomAttribute<SugarColumn>()?.ColumnDescription,
ColumnName = u.GetCustomAttribute<SugarColumn>()?.ColumnName ?? u.Name
ColumnName = GetRealColumnName(u.GetCustomAttribute<SugarColumn>()?.ColumnName) ?? u.Name
}).ToList();
// 按原始类型的顺序获取所有实体类型属性不包含导航属性会返回null
var columnList = provider.DbMaintenance.GetColumnInfosByTableName(entityType.Name).Select(u => new ColumnOuput
{
ColumnName = config.DbSettings.EnableUnderLine ? CodeGenUtil.CamelColumnName(u.DbColumnName, entityBasePropertyNames) : u.DbColumnName,
ColumnName = config!.DbSettings.EnableUnderLine ? CodeGenUtil.CamelColumnName(u.DbColumnName, entityBasePropertyNames) : u.DbColumnName,
ColumnKey = u.IsPrimarykey.ToString(),
DataType = u.DataType.ToString(),
NetType = CodeGenUtil.ConvertDataType(u, provider.CurrentConnectionConfig.DbType),
ColumnComment = u.ColumnDescription
}).ToList();
foreach (var column in columnList)
{
if (!properties.Any(u => u.ColumnName == column.ColumnName))
continue;
var property = properties.First(u => u.ColumnName == column.ColumnName);
column.ColumnComment ??= property?.ColumnComment;
column.PropertyName = property?.PropertyName;
}
return columnList;
string GetRealTableName(string name)
{
string realName = config!.DbSettings.EnableUnderLine ? UtilMethods.ToUnderLine(name) : name;
return realName;
}
string GetRealColumnName(string name)
{
if (string.IsNullOrWhiteSpace(name))
{
return null;
}
string realName = config!.DbSettings.EnableUnderLine ? CodeGenUtil.CamelColumnName(name, entityBasePropertyNames) : name;
return realName;
}
}
/// <summary>

View File

@ -131,7 +131,7 @@ public class DateTimeUtil
}
/// <summary>
/// 获取日期天的最大时间
/// 判断日期是否在当前年份并格式化日期
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
@ -141,7 +141,7 @@ public class DateTimeUtil
}
/// <summary>
/// 获取今天日期范围00:00:00 - 23:59:59
/// 获取日期范围00:00:00 - 23:59:59
/// </summary>
/// <returns></returns>
public static List<DateTime> GetTodayTimeList(DateTime time)

View File

@ -2,7 +2,7 @@
"name": "admin.net.pro",
"type": "module",
"version": "2.4.33",
"lastBuildTime": "2025.01.10",
"lastBuildTime": "2025.01.11",
"description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架",
"author": "zuohuaijun",
"license": "MIT",
@ -36,7 +36,7 @@
"echarts": "^5.6.0",
"echarts-gl": "^2.0.9",
"echarts-wordcloud": "^2.1.0",
"element-plus": "^2.9.2",
"element-plus": "^2.9.3",
"exceljs": "^4.4.0",
"ezuikit-js": "^8.1.4",
"gcoord": "^1.0.6",
@ -94,7 +94,7 @@
"@vitejs/plugin-vue-jsx": "^4.1.1",
"@vue/compiler-sfc": "^3.5.13",
"code-inspector-plugin": "^0.19.2",
"eslint": "^9.17.0",
"eslint": "^9.18.0",
"eslint-plugin-vue": "^9.32.0",
"globals": "^15.14.0",
"less": "^4.2.1",

View File

@ -178,7 +178,7 @@ onUnmounted(() => {
//
const handleKeyPress = (e: KeyboardEvent) => {
state.capsLockVisible = e.getModifierState('CapsLock');
state.capsLockVisible = e.key === 'CapsLock';
};
//