.net-core - 尝试使用通用 HostBuilder 使用 .net core 2 控制台应用程序配置 Serilog
问题描述
尝试遵循此处的文档
https://github.com/serilog/serilog-extensions-hosting
在我的项目中引用这些包
<PackageReference Include="Serilog" Version="2.8.0" /> <PackageReference Include="Serilog.Sinks.File" Version="4.0.0" />
当我尝试添加行 UseSeriLog 时,无法识别
错误 CS1061“IHostBuilder”不包含“UseSeriLog”的定义,并且找不到接受“IHostBuilder”类型的第一个参数的可访问扩展方法“UseSeriLog”(您是否缺少 using 指令或程序集引用?)
我的主要方法:
private static async Task Main(string[] args)
{
var isService = !(Debugger.IsAttached || args.Contains("--console"));
Log.Logger = new LoggerConfiguration()
.WriteTo.File(@"d:\temp\consoleapp.log")
.CreateLogger();
var hostBuilder = new HostBuilder()
.ConfigureHostConfiguration(configHost => { configHost.AddCommandLine(args); })
.UseContentRoot(@"D:\Services\BldgRunner\")
.ConfigureAppConfiguration((hostingContext, config) =>
{
var env = hostingContext.HostingEnvironment;
config.AddCommandLine(args);
config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
config.AddEnvironmentVariables();
})
.ConfigureServices((hostContext, services) =>
{
//Inject additional services as needed
services.AddHostedService<JobRunner>();
})
**.UseSeriLog()**
.Build();
if (isService)
{
await hostBuilder.RunAsServiceAsync();
}
else
{
await hostBuilder.RunConsoleAsync();
}
}
解决方案
您需要安装Serilog.Extensions.Hosting
以与通用主机一起使用。
<PackageReference Include="Serilog.Extensions.Hosting" Version="3.0.0" />
推荐阅读
- google-chrome - 如何在 Chrome 中编辑 HSTS“max-age”指令?
- angular - npm 错误!awesome-typescript-loader@4.0.0-0 安装后
- docker - 在容器之间共享 Docker 容器存储卷
- mysql - 根据子模型/关系对父模型进行排序
- amazon-cognito - 通过 SPA 使用 aws amplify 的安全方式
- java - 如何在 UI 中搜索带有 '\t \n \r' 字符的文本
- laravel - 如何使用 docker-compose 运行 laravel 应用程序?
- algorithm - 如何按祖先的普遍程度对全名列表进行排序?
- c# - 使用 StartCoroutine 时出现 MissingReferenceException 错误 - Unity
- azure - 垂直显示建议的操作选项