首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将扩展方法应用于ILoggerBuilder而不是ILoggerFactory?

如何将扩展方法应用于ILoggerBuilder而不是ILoggerFactory?
EN

Stack Overflow用户
提问于 2019-03-15 20:05:15
回答 2查看 2.4K关注 0票数 4

我读过this,但它是asp.net核心的。下面的代码是为非web控制台应用程序编写的。Visual告诉我,AddConsole(this ILoggerFactory,...)已经过时,必须由AddConsole(this ILoggingBuilder,...)替换。

代码语言:javascript
复制
class Program
{
    static void Main(string[] args)
    {

        ILoggerFactory ilf = new LoggerFactory();
        ilf.AddConsole(LogLevel.Information);

        ILogger<Program> logger = ilf.CreateLogger<Program>();

        logger.LogError("the cpu is overheating");

        Console.WriteLine("waiting for logger to print");
    }
}

问题

在上述情况下,如何将扩展方法AddConsole用于ILoggingBuilder而不是ILoggerFactory

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-15 20:18:38

您应该在CreateDefaultBuilder()上调用WebHost方法,如下所示。有关更多信息,请参见此https://learn.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-2.2

代码语言:javascript
复制
public static void Main(string[] args)
{
    var host = CreateWebHostBuilder(args).Build();
    var logger = host.Services.GetRequiredService<ILogger<Program>>();
    logger.LogInformation("the cpu is overheating");
}

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .ConfigureLogging(logging =>
        {
            logging.ClearProviders();
            logging.AddConsole();
        });

如果它是一个控制台应用程序,那么您可能只需说

代码语言:javascript
复制
ILogger<Program> logger = new Logger<Program>(new LoggerFactory());
logger.LogError("System is over heated!!!");

这也不太困难,您需要扩展ILoggerProvider并将您的自定义提供程序传递给记录器工厂,例如

代码语言:javascript
复制
new LoggerFactory().AddProvider(new CustomProvider());

请参阅这篇带有彩色控制台日志记录https://asp.net-hacker.rocks/2017/05/05/add-custom-logging-in-aspnetcore.html的示例的博客文章。

票数 1
EN

Stack Overflow用户

发布于 2020-02-27 19:01:54

最短的是

代码语言:javascript
复制
var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55189961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档