【问题标题】:Why Serilog isn't working even i have done configurations为什么即使我完成了配置,Serilog 也无法工作
【发布时间】:2020-09-28 12:45:35
【问题描述】:

我已经在我的program.cs 中配置了这个并安装了所有的包,但是它不起作用。

var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.WriteTo
.Map("0", "Other-Other", (name, wt) => wt.File($"C:\\Serilog\\{name.Split('-')[0]}\\{name.Split('-')[1]}.txt", rollingInterval: RollingInterval.Day))
.CreateLogger();

我使用的日志行 -

 logger.LogInformation("\n Start InsertPRAsync Method.");

【问题讨论】:

  • 您已经配置了它,但是您是否添加了任何行来记录某些内容?如果你这样做了,为什么不也显示这些行?
  • 是的,我在服务方法中使用日志行为logger.LogInformation("\n Start InsertPRAsync Method.");
  • 如果你直接使用WriteTo.File(而不使用Map),你会得到你期望的文件创建/输出吗?

标签: c# serilog


【解决方案1】:

尝试在CreateHostBuilder() 方法中将.UseSerilog() 添加到CreateDefaultBuilder(),如下所示:

来自Serilog.AspNetCore Documentation的示例

Host.CreateDefaultBuilder(args)
    .UseSerilog() // <-- Add this line
    .ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.UseStartup<Startup>();
    });

【讨论】:

  • 我用过这种方式public static IWebHostBuilder CreateWebHostBuilder(string[] args) =&gt; WebHost.CreateDefaultBuilder(args) .UseLibuv() .UseStartup&lt;Startup&gt;() .UseSerilog();
  • 尝试移动到.UseStartup&lt;Startup&gt;()之前
  • 我也在 CreateHostBuilder() 方法中使用过它
猜你喜欢
  • 2019-12-08
  • 1970-01-01
  • 2017-10-08
  • 1970-01-01
  • 2022-08-11
  • 1970-01-01
  • 1970-01-01
  • 2017-05-21
  • 1970-01-01
相关资源
最近更新 更多