【发布时间】:2019-05-19 15:45:06
【问题描述】:
如果我在ASP.NET Core 2.2中使用新引入的InProcess托管模型如下:
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
Serilog 不将日志写入文件。但如果我从.csproj 中删除<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>,一切都会按预期进行。
我在Program类中的Serilog配置如下:
public class Program
{
public static void Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information() // Set the minimun log level
.WriteTo.File("Logs\\log-.txt", rollingInterval: RollingInterval.Day, retainedFileCountLimit: 7) // this is for logging into file system
.CreateLogger();
try
{
Log.Information("Starting web host");
CreateWebHostBuilder(args).Build().Run();
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
}
finally
{
Log.CloseAndFlush();
}
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureLogging(logging => { logging.ClearProviders(); }) // clearing all other logging providers
.UseSerilog(); // Using serilog
}
请高手给点意见!
【问题讨论】:
-
请记住,托管进程的默认目录与自托管进程不同。所以您可能需要在启动期间设置它或使用绝对路径(通过 appsettings.json、环境变量等)
标签: c# asp.net-core serilog asp.net-core-2.2