Microsoft.Extensions.Logging如何为完整的.net框架工作?

时间:2017-02-21 00:53:07

标签: asp.net .net azure azure-service-fabric azure-diagnostics

文章(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核心相关的二进制文件?

2 个答案:

答案 0 :(得分:7)

@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.Extentions.Logging和Serilog.Sinks.File NuGet包。

答案 1 :(得分:3)

这意味着库'Microsoft.Extensions.Logging'是针对netstandard(1.1)编译的,这意味着它可以被完整框架(4.5+)应用程序和dotnet核心应用程序使用。

添加net标准元数据包会引入一堆dependencies,但由于您的项目是针对完整框架的,因此您的服务实际上不会使用它们。