簡體   English   中英

Serilog不會將日志寫入文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM