簡體   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