serilog - 如何为 .NET Core 3.0 Worker 服务设置 serilog SEQ
问题描述
日志正在工作,但它没有发布到我的本地 seq,我尝试添加 serilog 和 useSerilog 但它没有登录到我的本地服务:相关问题
.csproj
<ItemGroup>
<PackageReference Include="Microsoft.AspNet.Mvc" Version="5.2.7" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="3.0.1" />
<PackageReference Include="Serilog" Version="2.8.0" />
<PackageReference Include="Serilog.AspNetCore" Version="3.0.0" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="3.0.0" />
<PackageReference Include="Serilog.Extensions.Logging" Version="3.0.1" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.1.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.6.0" />
程序
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(loggingBuilder => {
loggingBuilder.AddEventLog();
loggingBuilder.AddSerilog();
})
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
})
.UseSerilog();
appSettings.json:
"Serilog": {
"LevelSwitches": { "$controlSwitch": "Verbose" },
"MinimumLevel": { "ControlledBy": "$controlSwitch" },
"WriteTo": [
{
"Name": "Seq",
"Args": {
"serverUrl": "http://localhost:5341",
"apiKey": "yeEZyL3SMcxEKUijBjN",
"controlLevelSwitch": "$controlSwitch"
}
}
]
}
我是否缺少一些配置或任何 Nuget 包?我已经在 ASP.NET Core API 中成功使用了 seq,但到目前为止还不能在工作服务中使用它。
解决方案
在花了更多时间弄清楚之后,问题在于应用程序设置的设置以及我注入记录器的方式
<ItemGroup>
<PackageReference Include="Microsoft.AspNet.Mvc" Version="5.2.7" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="3.0.1" />
<PackageReference Include="Serilog" Version="2.8.0" />
<PackageReference Include="Serilog.AspNetCore" Version="3.0.0" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="3.0.0" />
<PackageReference Include="Serilog.Extensions.Logging" Version="3.0.1" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.1.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.Seq" Version="4.0.0" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.6.0" />
Host.CreateDefaultBuilder(args)
.ConfigureLogging(loggingBuilder =>
{
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
var logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
loggingBuilder.AddSerilog(logger, dispose: true);
})
设置:
"Serilog": {
"LevelSwitches": { "$controlSwitch": "Verbose" },
"MinimumLevel": { "ControlledBy": "$controlSwitch" },
"WriteTo": [
{
"Name": "Seq",
"Args": {
"serverUrl": "http://localhost:5341",
"apiKey": "yeEZyL3SMcxEKUijBjN",
"controlLevelSwitch": "$controlSwitch"
}
}
]
推荐阅读
- macos - Apache2设置macOS Monterey错误禁止
- c++ - 将字符存储数组转换为哈希图时遇到错误
然后堆。然后打印其频率的字符和数字 - apache-spark - Spark:在 CASE WHEN 表达式中使用空检查来防止类型错误
- unit-testing - 如何从 DD 路径测试中找到独立路径?
- angular - 使用 ngFor 时在迭代中同时设置类和数据
- c++ - SetWindowRgn 将窗口主题更改为 Classic
- c++ - 如何在给定位置反转 std::list?
- jquery - ASP.NET MVV Core 应用程序:加载资源失败:服务器响应状态为 404(未找到)bootstrap.css:1
- swagger - 我想从给定的 swagger.json 创建 curl 请求?
- sql - 将查询结果作为 CSV 文件从 Docker PostgreSQL 容器导出到本地机器