我有解决方案,其中有5个.net核心项目,一个 - 控制台应用程序,其余是类库。在主要功能课程中我有:
float/int
在我的所有课程中,当我捕获异常时,我写了:
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");
}
行。现在我不知道该怎么做。也许有人有类似的问题?
修改 我从这里建模https://github.com/serilog/serilog/wiki/Getting-Started
答案 0 :(得分:2)
您是否将Serilog添加到LoggerFactory
?
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IApplicationLifetime appLifetime)
{
loggerFactory.AddSerilog();
}
答案 1 :(得分:2)
您应该只在完成所有任务后致电Log.CloseAndFlush()
。在Console.ReadLine()
调用之后放置它应该证明这一点。