未找到方法:'Serilog.LoggerConfiguration
Method not found: 'Serilog.LoggerConfiguration
我的解决方案有一个主记录器,定义为
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();
我想创建两个单独的记录器来记录两个 class 实例中的内容。我将它们定义如下。它位于与主项目不同的程序集中。
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();
}
我没有收到构建错误,但我在 运行 时间收到了这个错误。
Method not found: 'Serilog.LoggerConfiguration
Serilog.RollingFileLoggerConfigurationExtensions.RollingFile(Serilog.Configuration.LoggerSinkConfiguration,
System.String, Serilog.Events.LogEventLevel, System.String,
System.IFormatProvider, System.Nullable1<Int64>,
System.Nullable
1, Serilog.Core.LoggingLevelSwitch, Boolean,
Boolean, System.Nullable`1)'."}
原来我在主程序集中引用的 nuget 包比在子程序集中引用的要旧。更新它们使它们匹配后,问题就消失了。
版本不匹配导致的问题
你的代码是正确的刚好匹配版本
我使用的是 2.0 版而不是 1.5
请将您的版本与(如果您使用的是 Active Directory/Azure Active Directory)相匹配
步骤
卸载 Serilog
安装匹配版本的 Serilog (1.5/ 2.0/..)
应该为 netcore 框架安装 serilog。
dotnet add package Serilog.AspNetCore --version 4.1.0
我的解决方案有一个主记录器,定义为
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();
我想创建两个单独的记录器来记录两个 class 实例中的内容。我将它们定义如下。它位于与主项目不同的程序集中。
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();
}
我没有收到构建错误,但我在 运行 时间收到了这个错误。
Method not found: '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)'."}
原来我在主程序集中引用的 nuget 包比在子程序集中引用的要旧。更新它们使它们匹配后,问题就消失了。
版本不匹配导致的问题
你的代码是正确的刚好匹配版本
我使用的是 2.0 版而不是 1.5
请将您的版本与(如果您使用的是 Active Directory/Azure Active Directory)相匹配
步骤
卸载 Serilog
安装匹配版本的 Serilog (1.5/ 2.0/..)
应该为 netcore 框架安装 serilog。
dotnet add package Serilog.AspNetCore --version 4.1.0