[英]Serilog does not write logs to file
我有解決方案,其中有5個.net核心項目,一個 - 控制台應用程序,其余是類庫。 在主要功能的課程中我有:
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.LiterateConsole()
.WriteTo.Async(a => a.RollingFile("logs\\myapp-{Date}.txt",
outputTemplate : "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level} {Type}] {Message}{NewLine}{Exception} {SourceContext}"))
.CreateLogger();
Log.Information("Server starting ...");
//Here I have class which invoke a lot of(6-7) Tasks
NewTask task = new NewTask();
task.Start();
//And I end my Main function with
Log.CloseAndFlush();
Console.ReadLine();
在我的所有課程中,當我捕獲異常時,我寫了:
catch(Exception e)
{
Log.ForContext<ClassName>().Error(e, "Somethign went wrong");
}
在新的日志中,我只有“服務器啟動...”僅此而已。 我應該怎么做? 當我調試時,我看到我的程序運行帶有catch
行。 現在我不知道該怎么做。 也許有人有類似的問題?
編輯我從這里建模https://github.com/serilog/serilog/wiki/Getting-Started
您是否將Serilog添加到LoggerFactory
?
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IApplicationLifetime appLifetime)
{
loggerFactory.AddSerilog();
}
您應該只在完成所有任務后調用Log.CloseAndFlush()
。 在Console.ReadLine()
調用之后放置它應該證明這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.