我的解决方案有一个主记录器,定义为
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,Boolean, Boolean,System.Nullable`1)&#39;。&#34;}
答案 0 :(得分:3)
原来我在主装配中引用了一个比我在子装配中更老的nuget包。更新后,他们匹配问题就消失了。
答案 1 :(得分:1)
由于版本不匹配而出现的问题
您的代码正确无误,只是匹配版本
我使用的是2.0版,而不是1.5版
请与您的版本匹配(如果您使用的是Active Directory / Azure Active Directory)
步骤
卸载Serilog
以匹配版本(1.5 / 2.0 / ..)安装Serilog
答案 2 :(得分:0)
应该为 netcore 框架安装 serilog。
dotnet add package Serilog.AspNetCore --version 4.1.0