繁体   English   中英

从 nuget 库正确记录

[英]Proper logging from a nuget library

我正在开发一个可从 WPF 应用程序和 UWP 应用程序使用的 nuget 库,并且我想使用Microsoft.Extensions.Logging.Abstractions为用户提供一种方法来从他们的应用程序(Serilog、NLog、等等..)。 因此,我从这个开始:

public static partial class FrameworkElementExtensions
{
    internal static ILogger _logger;

    public static void AttachLogger(ILogger logger) => _logger = logger;
.
.
.
}

在这种情况下,我需要向基于 FrameworkElement 的扩展方法添加日志记录。 我觉得我这样做是错误的,因为我有一个名为AttachLogger的函数来注入记录器,而且我的ILogger与类型无关(例如: ILogger<T> ),因为我在静态类中。

有人可以指出我正确的方向吗? 谢谢!

除了使用专用方法(在您的情况下为AttachLoggerAttachLogger ,我看不到使用Microsoft.Extensions.Logging.Abstractions将依赖项“注入”到静态类的更好方法。

关于通用Logger<T> ,您可以注入ILoggerFactory并创建与您的类相关联的记录器

public static void AttachLogger(ILoggerFactory loggerFactory)
{
    _logger = loggerFactory.CreateLogger(nameof(FrameworkElementExtensions));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM