Microsoft.Extensions.Logging 如何适用于完整的 .net 框架?
How does Microsoft.Extensions.Logging work for full .net framework?
文章 (Monitor and diagnose Azure Service Fabric applications) 表示如下(请注意粗体文本):
ASP.NET 核心日志记录
选择如何检测您的代码可能很困难,如果您选择不当并且必须重新检测,您正在重新访问并可能破坏您的代码库。为了降低风险,开发者可以选择 ASP.NET Core 提供的 Microsoft.Extensions.Logging 等检测库。这提供了一个 ILogger 接口,允许使用您选择的提供程序,同时最大限度地减少对现有代码的影响。另一个好的方面是代码不仅可以在 Windows 和 Linux 上的 .NET Core 中使用,而且还可以在 完整的 .NET 框架 中使用,提供跨 .NET 和 .NET Core 标准化检测代码的能力。
这应该如何工作,因为当我尝试添加扩展库(添加到我编译为 .net Framework 4.5.2 的服务结构集群应用程序项目)时,它试图关闭所有 asp.net 核心相关的二进制文件?
这意味着库 'Microsoft.Extensions.Logging' is compiled against netstandard (1.1),这意味着它可以被完整框架 (4.5+) 应用程序和 dotnet 核心应用程序使用。
添加 net 标准元包引入了一堆 dependencies,但由于您的项目以完整框架为目标,因此您的服务实际上不会使用它们。
@LoekD 的回答完全正确。下面是一个 .NET Framework 示例,说明如何将 Microsoft Extentions Logging 框架与 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 包。
文章 (Monitor and diagnose Azure Service Fabric applications) 表示如下(请注意粗体文本):
ASP.NET 核心日志记录
选择如何检测您的代码可能很困难,如果您选择不当并且必须重新检测,您正在重新访问并可能破坏您的代码库。为了降低风险,开发者可以选择 ASP.NET Core 提供的 Microsoft.Extensions.Logging 等检测库。这提供了一个 ILogger 接口,允许使用您选择的提供程序,同时最大限度地减少对现有代码的影响。另一个好的方面是代码不仅可以在 Windows 和 Linux 上的 .NET Core 中使用,而且还可以在 完整的 .NET 框架 中使用,提供跨 .NET 和 .NET Core 标准化检测代码的能力。
这应该如何工作,因为当我尝试添加扩展库(添加到我编译为 .net Framework 4.5.2 的服务结构集群应用程序项目)时,它试图关闭所有 asp.net 核心相关的二进制文件?
这意味着库 'Microsoft.Extensions.Logging' is compiled against netstandard (1.1),这意味着它可以被完整框架 (4.5+) 应用程序和 dotnet 核心应用程序使用。
添加 net 标准元包引入了一堆 dependencies,但由于您的项目以完整框架为目标,因此您的服务实际上不会使用它们。
@LoekD 的回答完全正确。下面是一个 .NET Framework 示例,说明如何将 Microsoft Extentions Logging 框架与 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 包。