所有记录都好像是来自Main方法

时间:2018-11-08 08:50:21

标签: c# logging .net-core serilog

我正在尝试在.NET Core控制台应用程序中使用Serilog(控制台和文件)。

在我的主类中,我这样初始化记录器:

Log.Logger = new LoggerConfiguration()
                .MinimumLevel.Verbose()
                .MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
                .Enrich.FromLogContext()
                .WriteTo.File("log.txt", outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] ({SourceContext}.{Method}) {Message}{NewLine}{Exception}")
                .WriteTo.Console(outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] ({SourceContext}.{Method}) {Message}{NewLine}{Exception}")
                .CreateLogger();

使用{SourceContext}.{Method},我想知道我要从哪个类和方法登录。

我想在其他课程中使用具有相同设置的此记录器。所以例如我在其中之一中初始化记录器:

private readonly ILogger _log = Log.ForContext<MyClass>();

但是我怀疑这是否正在生成我想要的日志,因为当我尝试记录这样的异常时

Log.Error(ex.Message);

我得到的日志没有提及类和方法:

  

2018-11-08 09:24:51.647 +01:00 [错误](。)字符串'11 / 01/2018   11:43:00”未被识别为有效的DateTime。

似乎在Main方法中发生了错误。因此:

  1. 我是否必须为每个课程初始化整个记录器设置?
  2. 将记录器设置保存到文件中并从该文件中读取吗?
  3. 我尝试登录代码的方式有问题吗?

0 个答案:

没有答案