微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Serilog 没有方法“.ForContext()”

如何解决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 举报,一经查实,本站将立刻删除。