Serilog 没有方法“.ForContext()”

问题描述

在我的项目中,日志记录是使用 Serilog 实现的。当我尝试记录一行时,我想添加一些不应包含在消息中但应包含在日志中的值。

我的 _Logger 没有“.ForContext”() 方法。 也许我注册错了 serilog?

处理程序类:

public class LogHandler 
    {
        private readonly ILogger<LogHandler> _logger;

        public LogHandler(ILogger<LogHandler> logger)
        {
            _logger = logger;
        }

       **_logger.(HAS NO METHOD)ForContext("Hello",...);** 
}

Program.cs:

namespace LoggingExample
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .ConfigureLogging(loggingConfiguration => loggingConfiguration.ClearProviders())
            .UseSerilog((hostingContext,loggerConfiguration) =>
                loggerConfiguration.ReadFrom.Configuration(hostingContext.Configuration)
            .Enrich.FromLogContext());
    }

}

启动:

namespace LoggingExample
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton<ILogHandler,LogHandler>()
                .AddMvc()
                .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        }

        public void Configure(IApplicationBuilder app,IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseMvc();
        }
    }
}

设置:

{
  "Serilog": {
    "Using": [ "Serilog.Sinks.Graylog","Serilog.Sinks.Console" ],"MinimumLevel": {
      "Default": "Warning","Override": {
        "LoggingExample.Handler": "information"
      }
    },"Writeto": [
      {
        "Name": "Graylog","Args": {
          "hostnameOrAddress": "127.0.0.1","port": "1514","transportType": "Tcp"
        }
      }
    ],"Enrich": [
      "FromLogContext","WithMachineName"
    ],"Properties": {
      "Application": "Centralized logging application"
    }
  },"AllowedHosts": "*"
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)