代码之家  ›  专栏  ›  技术社区  ›  disasterkid

所有记录都好像它们来自主方法

  •  1
  • disasterkid  · 技术社区  · 7 年前

    我正在尝试在.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'未被识别为有效的日期时间。

    似乎主方法中发生了错误。所以:

    1. 我必须为每个类初始化整个日志设置吗?
    2. 在文件中保存记录器设置并从该文件中读取?
    3. 我试图登录代码的方式有问题吗?
    0 回复  |  直到 7 年前