.net core 在asp.net core中使用ILogger的静态实例进行日志记录不起作用

.net core 在asp.net core中使用ILogger的静态实例进行日志记录不起作用,.net-core,ilogger,.net Core,Ilogger,ILogger工厂没有使用静态实例进行日志记录。我想在类项目的静态方法中调用ILogger。有人能帮我修复下面的代码吗 公共类apploger { 公共静态ILoggerFactory LoggerFactory{get;set;}=new LoggerFactory(); 公共静态ILogger CreateLogger()=>LoggerFactory.CreateLogger(); 公共静态ILogger CreateLogger(string categoryName)=>LoggerF

ILogger工厂没有使用静态实例进行日志记录。我想在类项目的静态方法中调用ILogger。有人能帮我修复下面的代码吗

公共类apploger
{
公共静态ILoggerFactory LoggerFactory{get;set;}=new LoggerFactory();
公共静态ILogger CreateLogger()=>LoggerFactory.CreateLogger();
公共静态ILogger CreateLogger(string categoryName)=>LoggerFactory.CreateLogger(categoryName);
}
班级计划
{
公共静态只读ILogger _logger=AppLogger.CreateLogger();
静态void Main(字符串[]参数)
{
_logger.LogInformation(“你好,世界!”);
Console.Read();
}
}

将日志类设置为静态并不是一个坏主意,因此:

公共静态类apploger
{
//LoggerFactory是系统类的名称;因此,再次使用它不是一个好主意。
公共静态ILogerFactory MyLoggerFactory{get;set;}=LoggerFactory.Create(生成器=>
{
//添加控制台记录器和配置以显示日志级别信息
AddConsole(configure:config=>{builder.SetMinimumLevel(LogLevel.Information);});
});
公共静态ILogger CreateLogger()=>MyLoggerFactory.CreateLogger();
公共静态ILogger CreateLogger(string categoryName)=>MyLoggerFactory.CreateLogger(categoryName);
}
  • 让它静止
  • 将记录器工厂重命名为其他名称,因为LoggerFactory是系统类名的名称
  • 添加控制台记录器或任何其他日志提供程序
  • 配置提供程序以显示日志记录信息示例
  • 项目参考: