C# 如何在C.NETCore3.1中实例化记录器

C# 如何在C.NETCore3.1中实例化记录器,c#,winforms,logging,.net-core,C#,Winforms,Logging,.net Core,我对使用Microsoft.Extensions.Logging类登录项目感兴趣 我搜索了大约4个小时,观看了一个大约1小时的教程,只是不知道如何在C中实例化记录器大多数教程都使用ASP.Net 我尝试的是: var loggerFactory = LoggerFactory.Create(builder => { builder .AddConsole() .AddEv

我对使用Microsoft.Extensions.Logging类登录项目感兴趣

我搜索了大约4个小时,观看了一个大约1小时的教程,只是不知道如何在C中实例化记录器大多数教程都使用ASP.Net

我尝试的是:

        var loggerFactory = LoggerFactory.Create(builder =>
        {
            builder
                .AddConsole()
                .AddEventLog();
        });
        ILogger logger = loggerFactory.CreateLogger<Form1>();
        logger.LogInformation("Example log message");
这段代码是从微软网站上复制过来的,只是做了一些细微的改动,它没有给我语法错误或警告,但它什么也不做

我已经准备好了这些链接:

还有更多 我尝试在Winforms应用程序中执行此操作

也许你已经准备好在C和.net内核中做一些类似的事情了


谢谢你

我决定在WinForms应用程序中试用你的代码,自己看看。您实际上正在记录日志,但没有看到日志。我建议添加一个日志库和一个文件接收器或类似的工具

以下是如何添加控制台窗口,以便可以在其中查看日志记录: 在程序中添加:

现在,在主方法中添加:

NativeMethods.AllocConsole();

这将打开控制台窗口,您将在其中看到您的示例日志消息。

您可以使用通用主机设置依赖项注入,然后只获取一个作用域ILogger。您是否尝试过AddDebug并查看它是否有作用?换句话说,您如何知道它什么都没有作用?你在哪里查的?控制台在winforms应用程序中不可用,windows事件日志中的消息可能很难找到。但visual studio将在输出窗口中显示调试消息。@MikeNakis是的,我显示了,但没有从中得到任何输出。好吧,这是我的两分钱:我不使用日志库。日志记录比琐碎的日志记录稍微复杂一点,所以自己做起来很容易,而我在日志记录库方面的经验是,它们总是需要太多的故障排除和困惑,为什么它们不工作才值得为您节省麻烦。在这些库中,他们故意遵循“我们从不生成错误”原则,这意味着排除错误几乎是不可能的。那是一个站不住脚的学说。当某些东西不起作用时,我希望看到错误。很多错误。这个答案是正确的,但我建议您可能需要澄清一下:这是为了@LucaScript能够使用现有的WinForm应用程序来尝试这一点。没有必要总是连接到控制台才能查看日志。这意味着我在6小时前对问题的评论是正确的。
NativeMethods.AllocConsole();