找不到方法:' Serilog.LoggerConfiguration

时间:2016-12-16 15:45:39

标签: c# serilog

我的解决方案有一个主记录器,定义为

    Log.Logger = new LoggerConfiguration()
        .MinimumLevel.Verbose()
        .WriteTo.LiterateConsole(LogEventLevel.Verbose)
        .WriteTo.RollingFile($"{appLogDir}{Path.DirectorySeparatorChar}logs{Path.DirectorySeparatorChar}V-RPi-{{Date}}.log")
        .WriteTo.RollingFile($"{appLogDir}{Path.DirectorySeparatorChar}logs-warnings{Path.DirectorySeparatorChar}V-RPi-{{Date}}.log", LogEventLevel.Warning)
        .WriteTo.File($"{appLogDir}{Path.DirectorySeparatorChar}recent-log.log", fileSizeLimitBytes: 134217728, restrictedToMinimumLevel: LogEventLevel.Verbose)
        .CreateLogger();

我想创建两个独立的记录器来记录两个类实例中的东西。我已将它们定义如下。它位于与主项目不同的组件中。

private ILogger comRespLog;
public **constructor**(string name)
{
comRespLog = new LoggerConfiguration()
                .MinimumLevel.Verbose()            
                .WriteTo.RollingFile($"{appLogDir}{Path.DirectorySeparatorChar}logs-CommandResponse-{Name}{Path.DirectorySeparatorChar}V-RPi-{{Date}}.log")
                .CreateLogger();
}

我没有收到任何构建错误,但我在运行时收到此错误。

  

找不到方法:&#39; Serilog.LoggerConfiguration   Serilog.RollingFileLoggerConfigurationExtensions.RollingFile(Serilog.Configuration.LoggerSinkConfiguration,   System.String,Serilog.Events.LogEventLevel,System.String,   System.IFormatProvider,System.Nullable 1<Int64>, System.Nullable 1,Serilog.Core.LoggingLevelSwitch,Boolean,   Boolean,System.Nullable`1)&#39;。&#34;}

3 个答案:

答案 0 :(得分:3)

原来我在主装配中引用了一个比我在子装配中更老的nuget包。更新后,他们匹配问题就消失了。

答案 1 :(得分:1)

由于版本不匹配而出现的问题

您的代码正确无误,只是匹配版本

我使用的是2.0版,而不是1.5版

请与您的版本匹配(如果您使用的是Active Directory / Azure Active Directory)

步骤

  1. 卸载Serilog

  2. 以匹配版本(1.5 / 2.0 / ..)安装Serilog

答案 2 :(得分:0)

应该为 netcore 框架安装 serilog。

dotnet add package Serilog.AspNetCore --version 4.1.0