我在.NET Core5控制台应用程序中使用Serilog进行诊断。我不能决定结合异常处理的最好的日志语义。例如,假设我执行了一个需要文件存在的操作。如果该文件不存在,我会出于流控制原因抛出一个异常(我需要解开才能正确退出应用程序)。但是,我应该在哪里以及如何记录呢?我能想到几个选项: 第一个选项-在抛出之前记录: if (!, myFilePath);
throw new ArgumentException("File does not exist", name
Serilog提供了一种方便的方法来解构对象,如下例所示:logger.Debug(exception, "This is an {@Exception} structure", exception);
第一行使记录器将异常记录为纯文本(通过调用ToString()),第二行使记录器将异常属性作为单独的字段写入但是这个重载是什么呢: