![](/img/trans.png)
[英]ASP.NET Core catch and display error inside Program.cs and Startup.cs
[英].NET Core Worker Serilog logging inside Program.cs
在 .Net Core 3.1 worker 中,我尝试在Program.cs
文件中使用 serilog 进行日志记录。 Serilog 配置在appsettings.json
里面,而CreateHostBuilder
就像
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureHostConfiguration(builder =>
{
builder.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
builder.AddJsonFile("appsettings.Development.json", optional: true);
})
.UseSerilog((hostContext, loggerConfig) => {
loggerConfig.ReadFrom.Configuration(hostContext.Configuration);
})
.ConfigureServices((hostContext, services) =>
{
// configuring some services here, and I want to log message to serilog
})
.UseWindowsService();
}
我已经设法在 Main 类中使用 Serilog
public static void Main(string[] args)
{
// CreateHostBuilder(args).Build().Run(); // inital code
var host = CreateHostBuilder(args).Build();
// get logger instance
var logger = host.Services.GetService<ILogger<Program>>();
try
{
logger.LogInformation("Worker started succesfully.");
host.Run();
}
catch (Exception ex)
{
logger.LogCritical(ex, "Starting worker failed!");
Environment.Exit(160);
}
}
我想知道如何在ConfigureServices
制作 Serilog 日志。 我在ConfigureServices
使用过
var provider = services.BuildServiceProvider();
var logger = provider.GetService<ILogger<IHostBuilder>>();
但在那之后,我得到了多个文件 - 每个调试会话使用 F5 两个文件,我想登录一个(每天,这是配置的):
我已经设法在这里找到解决方案
希望有人会觉得它有用:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.