首页 > 解决方案 > 将 Serilog ILogger 添加到静态类

问题描述

我想将 Serilog 添加Log到我的程序中的静态类中,如下所示(DataHelper是类名):

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

但这会导致错误消息:

静态类型不能用作类型参数

这是有道理的。那么如何将记录器(在非静态类中工作正常)注入这个类?

更新:您提到的问题的答案表明这是不可能的。但是根据 Serilog 的 Github,有一个解决方法。我只需要 log 就可以知道它正在记录的类。现在,它似乎是从主类记录的。

标签: c#logging.net-coreserilog

解决方案


您需要使用接受 a 的重载Type

private readonly ILogger _log = Log.ForContext(typeof(DataHelper));

推荐阅读