😎1、日志结果默认不裁剪 2、优化日志存储 3、优化生成获取所有列方法 4、其他优化
This commit is contained in:
parent
320e23a054
commit
3d1f77dc94
@ -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", // 是否输出Json,默认None(OnlyJson、All)
|
||||
"JsonIndented": false, // 是否格式化Json
|
||||
"UseUtcTimestamp": false, // 时间格式UTC、LOCAL
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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") },
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -178,7 +178,7 @@ onUnmounted(() => {
|
||||
|
||||
// 检测大小写按键
|
||||
const handleKeyPress = (e: KeyboardEvent) => {
|
||||
state.capsLockVisible = e.getModifierState('CapsLock');
|
||||
state.capsLockVisible = e.key === 'CapsLock';
|
||||
};
|
||||
|
||||
// 获取验证码
|
||||
|
||||
Loading…
Reference in New Issue
Block a user