配置 Serilog.Extensions.Logging.File

Hec*_*res 4 c# logging serilog asp.net-core

按照Nicholas Blumhardt 页面和后来的Serilog github 页面上的说明,我在让 Serilog 工作时遇到了问题。具体来说

错误 CS1061“ILoggerFactory”不包含“AddFile”的定义,并且找不到接受“ILoggerFactory”类型的第一个参数的扩展方法“AddFile”(您是否缺少 using 指令或程序集引用?)

我已经从 NuGet 下载了最新的包。我的 .proj 有以下条目<PackageReference Include="Serilog.Extensions.Logging" Version="2.0.2" />

安装后我重新启动了 Visual Studio。

Startup.cs(第一次)

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    loggerFactory.AddFile("Logs/app-{Date}.txt");
Run Code Online (Sandbox Code Playgroud)

Program.cs(第 2 节)

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .ConfigureLogging((hostingContext, builder) =>
        {
            builder.AddFile("Logs/myapp-{Date}.txt");
        })
        .UseStartup<Startup>();
Run Code Online (Sandbox Code Playgroud)

更糟糕的是,我一年多前为一个项目做了这个,相比之下,我看不出我做错了什么:(

Tao*_*hou 8

对于一种方法,请按照以下步骤操作:

  1. 安装包Serilog.Extensions.Logging.File1.1.0

    <PackageReference Include="Serilog.Extensions.Logging.File" Version="1.1.0" />
    
    Run Code Online (Sandbox Code Playgroud)
  2. 注册AddFileStartup.cs

        public void Configure(IApplicationBuilder app, IHostingEnvironment env,        
     ILoggerFactory loggerFactory)
    {
        loggerFactory.AddFile("Logs/app-{Date}.txt");
    
    Run Code Online (Sandbox Code Playgroud)