我正在尝试在.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'未被识别为有效的日期时间。
似乎主方法中发生了错误。所以:
-
我必须为每个类初始化整个日志设置吗?
-
在文件中保存记录器设置并从该文件中读取?
-
我试图登录代码的方式有问题吗?