找不到方法:'Serilog.LoggerConfiguration

问题描述 投票:0回答:4

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

    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();
}

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

找不到方法:'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、布尔值、 布尔值,System.Nullable`1)'。"}

c# serilog
4个回答
15
投票

事实证明,我在主程序集中引用的 nuget 包比在子程序集中引用的 nuget 包旧。更新它们以使它们匹配后,问题就消失了。


4
投票

版本不匹配导致的问题

您的代码是正确的,只需匹配版本即可

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

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

步骤

  1. 卸载 Serilog

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


0
投票

应该安装netcore框架的serilog。

dotnet add package Serilog.AspNetCore --version 4.1.0

0
投票

对我来说,解决方法是从 web.config 中删除引用,因为版本已修复,但我仍然面临问题,所以我从 web.config 中删除了程序集引用,并且感谢 .net 编译器,它的目标是, 据我所知,如果存在对目标接口的引用,因此无法找到完全实现的内容,请从 dll 的 web.config 中删除引用,IIS 将自动从类文件中获取引用。

© www.soinside.com 2019 - 2024. All rights reserved.