简化startup

This commit is contained in:
2023-03-28 15:29:09 +08:00
parent 847a858d4c
commit d636034f06
10 changed files with 221 additions and 173 deletions

View File

@@ -0,0 +1,80 @@
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 ConfigureLoggingExtensions
{
const string DATEFORMAT = "HH:mm:ss.fff";
public static IServiceCollection ConfigureLogging(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));
};
});
// 日志监听
// services.AddMonitorLogging(options =>
//{
// options.IgnorePropertyNames = new[] { "Byte" };
// options.IgnorePropertyTypes = new[] { typeof(byte[]) };
//});
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;
}
}