要建立在擴展方法我存儲ILoggerFactory
在一個靜態類ILoggerFactory在擴展方法 - 壽命和處置
public static class ApplicationLogging
{
public static ILoggerFactory LoggerFactory { get; set; }
public static ILogger CreateLogger<T>() =>
LoggerFactory?.CreateLogger<T>();
public static ILogger CreateLogger(string name) =>
LoggerFactory?.CreateLogger(name);
}
被設置與
public void Configure(ILoggerFactory loggerFactory)
{
...
ApplicationLogging.LoggerFactory = loggerFactory;
}
然而,我注意到,ILoggerFactory
被丟棄
System.ObjectDisposedException:無法訪問處置物體。 對象名稱:'LoggerFactory'。 at Microsoft.Extensions.Logging.LoggerFactory.CreateLogger(String categoryName) at Microsoft.Extensions.Logging.Logger`1..ctor(ILoggerFactory factory) at Microsoft.Extensions.Logging.LoggerFactoryExtensions.CreateLogger [T](ILoggerFactory factory )
那麼存儲ILoggerFactory
是不正確的?從擴展方法訪問它的替代方法是什麼?店鋪IServiceProvider
和GetRequiredService<ILoggerFactory>
?
爲什麼需要在擴展方法中進行日誌記錄? – Ignas
你爲什麼這樣做? – Mardoxx
出於同樣的原因在別處添加日誌記錄。 – ubi