添加属性依赖注入、添加自定义日志扩展
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Yi.Framework.WebCore.LogExtend
|
||||
{
|
||||
public class CustomLogger : ILogger
|
||||
{
|
||||
public IDisposable BeginScope<TState>(TState state) => default!;
|
||||
|
||||
public bool IsEnabled(LogLevel logLevel)
|
||||
{
|
||||
return logLevel == LogLevel.Warning;
|
||||
}
|
||||
|
||||
//真正日志执行的方法
|
||||
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func<TState, Exception?, string> formatter)
|
||||
{
|
||||
if (!IsEnabled(logLevel))
|
||||
{
|
||||
return;
|
||||
}
|
||||
Console.WriteLine($"你好,这里是自定义的日志哦~,{formatter(state, exception)}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Logging.Configuration;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Yi.Framework.WebCore.LogExtend
|
||||
{
|
||||
public static class CustomLoggerExtensions
|
||||
{
|
||||
public static ILoggingBuilder AddCustomLogger(
|
||||
this ILoggingBuilder builder)
|
||||
{
|
||||
builder.AddConfiguration();
|
||||
|
||||
builder.Services.TryAddEnumerable(
|
||||
ServiceDescriptor.Singleton<ILoggerProvider, CustomLoggerProvider>());
|
||||
|
||||
//LoggerProviderOptions.RegisterProviderOptions<ColorConsoleLoggerConfiguration, ColorConsoleLoggerProvider>(builder.Services);
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
//public static ILoggingBuilder AddColorConsoleLogger(
|
||||
// this ILoggingBuilder builder,
|
||||
// Action<ColorConsoleLoggerConfiguration> configure)
|
||||
//{
|
||||
// builder.AddColorConsoleLogger();
|
||||
// builder.Services.Configure(configure);
|
||||
|
||||
// return builder;
|
||||
//}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Yi.Framework.WebCore.LogExtend
|
||||
{
|
||||
public class CustomLoggerProvider : ILoggerProvider
|
||||
{
|
||||
//创建我们自定义日志的方法
|
||||
public ILogger CreateLogger(string categoryName)
|
||||
{
|
||||
return new CustomLogger();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user