使用LoggerFactory输出到控制台;.AddConsole() 的问题

Nin*_*ama 1 c# logging winforms

我正在尝试了解并在 ac# winforms 应用程序中实现日志记录。在大多数/所有示例和文档中,我发现它们使用了.AddConsole()以下错误:

“ILoggingBuilder”不包含 AddConsole 的定义,并且没有可访问的扩展方法“Add Console”...

我当前的代码如下:

using Microsoft.Extensions.DependencyInjection; //<-----was suggested in an example but does nothing--<<<<
using Microsoft.Extensions.Logging;

    public partial class FormMain : Form
    {
        public FormMain()
        {
            var loggerFactory = LoggerFactory.Create(builder =>
            {
                builder
                    .AddFilter("Microsoft", LogLevel.Warning)
                    .AddFilter("System", LogLevel.Warning)
                    .AddFilter("LoggingConsoleApp.Program", LogLevel.Debug)
                    .AddConsole() //<-----------------------line with error---------<<<<
                    .AddEventLog();
            });

            ILogger logger = loggerFactory.CreateLogger<FormMain>();
            logger.LogInformation("Example log message");

            InitializeComponent();

            ...rest of program follows...
Run Code Online (Sandbox Code Playgroud)

您能帮忙指出如何编译示例代码吗?

如果您有我可以遵循的教程/文档的链接,我也将不胜感激。

我在 Microsoft Docs 中看到有一个 ILoggerFactory.AddProvider(ILoggerProvider) 方法,但我也没有取得任何成功。

感谢您的时间。

pin*_*x33 5

有多种不同的日志记录机制,但您无法将它们开箱即用。您缺少适当的 nuget 包。您需要添加对 的包引用Microsoft.Extensions.Logging.Console。完成此操作后,您就应该可以使用扩展方法了。

您可以在nuget.org上找到该包。