[英]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>
),因為我在靜態類中。
有人可以指出我正確的方向嗎? 謝謝!
除了使用專用方法(在您的情況下為AttachLogger
) AttachLogger
,我看不到使用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.