【问题标题】:Using LoggerFactory to output to console; Issue with .AddConsole()使用 LoggerFactory 输出到控制台; .AddConsole() 的问题
【发布时间】:2020-07-24 11:24:13
【问题描述】:

我正在尝试学习并在 c# 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...

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

如果您有指向我可以关注的教程/文档的链接,我也将不胜感激。

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

感谢您的宝贵时间。

【问题讨论】:

  • 你添加了Microsoft.Extensions.Logging.Console nuget 包吗?
  • @pinkfloydx33 不,我没有。谢谢你的澄清。现在可以了。我希望该示例的文档中提到了这一点。

标签: c# winforms logging


【解决方案1】:

有各种不同的日志记录机制,您无法直接使用它们。您缺少适当的 nuget 包。您需要添加对Microsoft.Extensions.Logging.Console 的包引用。一旦你这样做了,你应该可以使用扩展方法。

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

【讨论】:

    猜你喜欢
    • 2019-08-13
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多