Asp.net
Microsoft.Extensions.Logging 如何適用於完整的 .net 框架?
文章(監控和診斷 Azure Service Fabric 應用程序)指出以下內容(請注意粗體文本):
ASP.NET Core 日誌記錄
選擇如何檢測您的程式碼可能很困難,如果您選擇不當並且必須重新檢測,您將重新審視並可能破壞您的程式碼庫。為降低風險,開發人員可以選擇諸如 ASP.NET Core 提供的 Microsoft.Extensions.Logging 之類的檢測庫。這提供了一個 ILogger 介面,允許使用您選擇的提供程序,同時最大限度地減少對現有程式碼的影響。另一個很好的方面是程式碼不僅可以在 Windows 和 Linux 上的 .NET Core 中使用,還可以在完整的 .NET 框架中使用,從而能夠跨 .NET 和 .NET Core 標準化您的檢測程式碼。
這應該如何工作,因為當我嘗試添加擴展庫(到編譯為 .net 框架 4.5.2 的服務結構集群應用程序項目中)時,它試圖關閉所有與 asp.net 核心相關的二進製文件?
這意味著“Microsoft.Extensions.Logging ”庫是針對netstandard (1.1) 編譯的,這意味著它可以被完整框架 (4.5+) 應用程序和 dotnet 核心應用程序使用。
添加 net 標準元包會引入一堆依賴項,但由於您的項目針對的是完整框架,因此您的服務實際上不會使用它們。
@LoekD 的回答是絕對正確的。這是一個 .NET Framework 範例,說明如何將 Microsoft 擴展日誌框架與 Serilog 一起使用。
public class Program { private static void Main() { // instantiate and configure logging. Using serilog here, to log to console and a text-file. var loggerFactory = new Microsoft.Extensions.Logging.LoggerFactory(); var loggerConfig = new LoggerConfiguration() .WriteTo.Console() .WriteTo.File("logs\\myapp.txt", rollingInterval: RollingInterval.Day) .CreateLogger(); loggerFactory.AddSerilog(loggerConfig); // create logger and put it to work. var logProvider = loggerFactory.CreateLogger<Program>(); logProvider.LogDebug("debiggung"); } }需要 Microsoft.Extensions.Logging、Serilog.Extensions.Logging 和 Serilog.Sinks.File NuGet 包。