添加重写VisualDev接口

This commit is contained in:
2023-03-23 11:09:53 +08:00
parent 33a5bf0766
commit 05985a0e43
12 changed files with 3026 additions and 2789 deletions

View File

@@ -1,24 +1,23 @@
{
"ConnectionStrings": {
"ConfigId": "default",
"DBName": "tnb_bas",
"DBType": "PostgreSQL", //MySql;SqlServer;Oracle;PostgreSQL;Dm;Kdbndp;Sqlite;
"Host": "localhost",
"Port": "5432",
"DBName": "tnb_bas",
"UserName": "totong",
"Password": "IPANyxGSKxIXg0dBM",
//SqlServer
//"DefaultConnection": "Data Source=192.168.0.214;Initial Catalog={0};User ID=sa;Password=kMaeMP8Yck6b6wA;MultipleActiveResultSets=true"
//"DefaultConnection": "server={0},{1};database={2};uid={3};pwd={4};MultipleActiveResultSets=true"
//Kdbndp
//"DefaultConnection": "Server=192.168.0.103;Port=54321;UID=YANYU;PWD=123456;database=YANSOURCE"
//"DefaultConnection": "server={0};port={1};database={2};uid={3};pwd={4};"
//Dm
//"DefaultConnection": "Server=192.168.0.50; User Id=JNPFTEST; PWD=I97eH!bRfy55qGzF;DATABASE=JNPFTEST"
//"DefaultConnection": "server={0};port={1};database={2};uid={3};pwd={4};"
//Oracle
//"DefaultConnection": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.19)(PORT=1521))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME=JNPFCLOUD)));User Id=JNPFCLOUD;Password=JNPFCLOUD"
//"DefaultConnection": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={0})(PORT={1}))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME={2})));User Id={3};Password={4}"
//PostgreSQL
//"DefaultConnection": "PORT=5432;DATABASE=java_boot_dev_postgresql;HOST=192.168.0.103;PASSWORD=123456;USER ID=postgres"
"DefaultConnection": "server=localhost;port=5432;database=tnb_bas;uid=totong;pwd=IPANyxGSKxIXg0dBM;pooling=true;"
"DefaultConnection": "server={0};port={1};database={2};uid={3};pwd={4};pooling=true;"
//MySql
//"DefaultConnection": "server=192.168.0.10;Database=netcore_test;Uid=netcore_test;Pwd=jhpGB3A88CF57fBC;AllowLoadLocalInfile=true"
//"DefaultConnection": "server={0};port={1};database={2};uid={3};pwd={4};sslmode=none;pooling=true;charset=utf8mb4;allowLoadLocalInfile=true;allowPublicKeyRetrieval=true"
}
}

View File

@@ -0,0 +1,73 @@
using System.ComponentModel.DataAnnotations;
using System.Reflection;
using JNPF;
using JNPF.Logging;
using Spire.Xls;
using SqlSugar;
namespace Microsoft.Extensions.DependencyInjection;
/// <summary>
/// SqlSugar配置拓展.
/// </summary>
public static class LoggingConfigureExtensions
{
const string DATEFORMAT = "HH:mm:ss.fff";
public static IServiceCollection LoggingConfigure(this IServiceCollection services)
{
services.AddConsoleFormatter(option =>
{
option.MessageFormat = LoggerConsoleFormat;
}).AddFileLogging(options =>
{
options.MessageFormat = LoggerFileFormat;
options.FileNameRule = fileName => string.Format(fileName, DateTime.Now); // 每天创建一个文件
options.HandleWriteError = (writeError) => // 写入失败时启用备用文件
{
writeError.UseRollbackFileName(Path.GetFileNameWithoutExtension(writeError.CurrentFileName) + "-oops" + Path.GetExtension(writeError.CurrentFileName));
};
});
return services;
}
private static string LoggerLevelName(LogLevel level)
{
return level switch
{
LogLevel.Trace => "Trace",
LogLevel.Debug => "Debug",
LogLevel.Information => "Info",
LogLevel.Warning => "Warn",
LogLevel.Error => "Error",
LogLevel.Critical => "Crit",
_ => "None"
};
}
private static string LoggerFileFormat(LogMessage msg)
{
var txt = $"{LoggerLevelName(msg.LogLevel)} {msg.LogDateTime.ToString(DATEFORMAT)} {msg.ThreadId}# {msg.Message}";
if (msg.Exception != null)
{
//var EXCEPTION_SEPARATOR_WITHCOLOR = AppendWithColor(default, EXCEPTION_SEPARATOR, logLevelColors).ToString();
txt += $"{Environment.NewLine}{msg.Exception}";
}
return txt;
}
private static string LoggerConsoleFormat(LogMessage msg)
{
var fclr = msg.LogLevel switch
{
LogLevel.Warning => "\u001b[1m\u001b[33m",
LogLevel.Error => "\u001b[1m\u001b[31m",
_ => "\u001b[39m\u001b[22m"
};
var txt = $"{fclr}{LoggerLevelName(msg.LogLevel)}\u001b[49m \u001b[36m{msg.LogDateTime.ToString(DATEFORMAT)}\u001b[49m \u001b[39m\u001b[22m{msg.ThreadId}#\u001b[49m {fclr}{msg.Message}\u001b[49m";
if (msg.Exception != null)
{
//var EXCEPTION_SEPARATOR_WITHCOLOR = AppendWithColor(default, EXCEPTION_SEPARATOR, logLevelColors).ToString();
txt += $"{Environment.NewLine}{fclr}{msg.Exception}\u001b[49m";
}
return txt;
}
}

View File

@@ -15,23 +15,17 @@ public static class SqlSugarConfigureExtensions
public static IServiceCollection SqlSugarConfigure(this IServiceCollection services)
{
// 获取选项
ConnectionStringsOptions connectionStrings = App.GetConfig<ConnectionStringsOptions>("ConnectionStrings", true);
ConnectionStringsOptions conn = App.GetConfig<ConnectionStringsOptions>("ConnectionStrings", true);
List<ConnectionConfig> connectConfigList = new List<ConnectionConfig>();
string? connectionStr = connectionStrings.DefaultConnection;
var dataBase = connectionStrings.DBName;
var DBType = (DbType)Enum.Parse(typeof(DbType), connectionStrings.DBType);
var ConfigId = connectionStrings.ConfigId;
var DBName = connectionStrings.DBName;
var DBType = (DbType)Enum.Parse(typeof(DbType), conn.DBType);
// 默认数据库
connectConfigList.Add(new ConnectionConfig
{
ConnectionString = string.Format(connectionStr, DBName),
ConnectionString = string.Format(conn.DefaultConnection, conn.Host, conn.Port, conn.DBName, conn.UserName, conn.Password),
DbType = DBType,
IsAutoCloseConnection = true,
ConfigId = ConfigId,
ConfigId = conn.ConfigId,
InitKeyType = InitKeyType.Attribute,
MoreSettings = new ConnMoreSettings()
{

View File

@@ -25,6 +25,7 @@ using System;
using System.Text;
using Top.Api;
using JNPF.Common.Security;
using JNPF.VisualDev;
namespace JNPF.API.Entry;
@@ -32,11 +33,6 @@ public class Startup : AppStartup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddConsoleFormatter(option =>
{
option.MessageFormat = LoggerConsoleFormat;
});
// SqlSugar
services.SqlSugarConfigure();
@@ -140,6 +136,7 @@ public class Startup : AppStartup
services.AddSession();
services.AddMemoryCache(); // 使用本地缓存必须添加
services.LoggingConfigure();
// 日志监听
// services.AddMonitorLogging(options =>
//{
@@ -147,16 +144,6 @@ public class Startup : AppStartup
// options.IgnorePropertyTypes = new[] { typeof(byte[]) };
//});
services.AddFileLogging(options =>
{
options.MessageFormat = LoggerFileFormat;
options.FileNameRule = fileName => string.Format(fileName, DateTime.Now); // 每天创建一个文件
options.HandleWriteError = (writeError) => // 写入失败时启用备用文件
{
writeError.UseRollbackFileName(Path.GetFileNameWithoutExtension(writeError.CurrentFileName) + "-oops" + Path.GetExtension(writeError.CurrentFileName));
};
});
services.AddUnitOfWork<SqlSugarUnitOfWork>();
services.OSSServiceConfigure();
@@ -164,6 +151,8 @@ public class Startup : AppStartup
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddSchedule();
services.AddOverideVisualDev();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider serviceProvider, IOptions<SenparcSetting> senparcSetting, IOptions<SenparcWeixinSetting> senparcWeixinSetting)
@@ -201,7 +190,8 @@ public class Startup : AppStartup
app.UseInject(string.Empty);
app.MapWebSocketManager("/api/message/websocket", serviceProvider.GetService<IMHandler>());
//app.MapWebSocketManager("/api/message/websocket", serviceProvider.GetService<IMHandler>());
app.MapWebSocketManager("/websocket", serviceProvider.GetService<IMHandler>());
app.UseEndpoints(endpoints =>
{
@@ -212,45 +202,4 @@ public class Startup : AppStartup
serviceProvider.GetRequiredService<ITimeTaskService>().StartTimerJob();
}
const string DATEFORMAT = "HH:mm:ss.fff";
private string LoggerLevelName(LogLevel level)
{
return level switch
{
LogLevel.Trace => "Trace",
LogLevel.Debug => "Debug",
LogLevel.Information => "Info",
LogLevel.Warning => "Warn",
LogLevel.Error => "Error",
LogLevel.Critical => "Crit",
_ => "None"
};
}
private string LoggerFileFormat(LogMessage msg)
{
var txt = $"{LoggerLevelName(msg.LogLevel)} {msg.LogDateTime.ToString(DATEFORMAT)} {msg.ThreadId}# {msg.Message}";
if (msg.Exception != null)
{
//var EXCEPTION_SEPARATOR_WITHCOLOR = AppendWithColor(default, EXCEPTION_SEPARATOR, logLevelColors).ToString();
txt += $"{Environment.NewLine}{msg.Exception}";
}
return txt;
}
private string LoggerConsoleFormat(LogMessage msg)
{
var fclr = msg.LogLevel switch
{
LogLevel.Warning => "\u001b[1m\u001b[33m",
LogLevel.Error => "\u001b[1m\u001b[31m",
_ => "\u001b[39m\u001b[22m"
};
var txt = $"{fclr}{LoggerLevelName(msg.LogLevel)}\u001b[49m \u001b[36m{msg.LogDateTime.ToString(DATEFORMAT)}\u001b[49m \u001b[39m\u001b[22m{msg.ThreadId}#\u001b[49m {fclr}{msg.Message}\u001b[49m";
if (msg.Exception != null)
{
//var EXCEPTION_SEPARATOR_WITHCOLOR = AppendWithColor(default, EXCEPTION_SEPARATOR, logLevelColors).ToString();
txt += $"{Environment.NewLine}{fclr}{msg.Exception}\u001b[49m";
}
return txt;
}
}