Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Serilog不会将日志写入文件_C#_.net Core_Serilog - Fatal编程技术网

C# Serilog不会将日志写入文件

C# Serilog不会将日志写入文件,c#,.net-core,serilog,C#,.net Core,Serilog,我有一个解决方案,其中有5.net核心项目、一个控制台应用程序和其他类库。在主功能中的类内程序我有: Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.LiterateConsole() .WriteTo.Async(a => a.RollingFile("logs\\myapp-{Date}.txt",

我有一个解决方案,其中有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(异常e)
{
Log.ForContext().Error(e,“something出错”);
}
在新日志中,我只有“服务器正在启动…”一句话。我该怎么办?当我调试时,我看到我的程序运行带有
catch
的行。现在我不知道该怎么办。也许有人也有类似的问题

编辑
我从这里建模

您是否将Serilog添加到您的
日志工厂

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IApplicationLifetime appLifetime)
{
    loggerFactory.AddSerilog();
}

只能在所有任务完成后调用
Log.CloseAndFlush()
。将它放在
Console.ReadLine()
调用之后应该可以演示这一点。

您知道我们讨论的是.net核心而不是asp吗?好的,您能再显示一点代码吗?我刚刚尝试了Serilog示例,效果很好。我不能:(但正如您在我的编辑部分中看到的,我粘贴了一个对我也有效的示例,当然是一个项目的简单解决方案OMG,谢谢。我永远不会考虑它。在红线之后,对我来说是疯狂的,因为ReadLine停止了程序。但不知怎的,它工作得很好,很高兴能提供帮助。