c# - 将 Serilog ILogger 添加到静态类
问题描述
我想将 Serilog 添加Log
到我的程序中的静态类中,如下所示(DataHelper
是类名):
private readonly ILogger _log = Log.ForContext<DataHelper>();
但这会导致错误消息:
静态类型不能用作类型参数
这是有道理的。那么如何将记录器(在非静态类中工作正常)注入这个类?
更新:您提到的问题的答案表明这是不可能的。但是根据 Serilog 的 Github,有一个解决方法。我只需要 log 就可以知道它正在记录的类。现在,它似乎是从主类记录的。
解决方案
您需要使用接受 a 的重载Type
:
private readonly ILogger _log = Log.ForContext(typeof(DataHelper));
推荐阅读
- css - 视差背景图像适合 div
- typescript - 使用 typescript 泛型声明具有相同键但派生类型的类型
- security - GCE、GKE 和 AI Platform notebook 上具有关键安全更新的操作系统补丁如何?
- http - 如何在 go-chi 中启用 gzip 压缩中间件
- c++ - 在对齐连续分配方面需要帮助
- java - 使用按钮和鼠标来控制画板
- prolog - 如何在列表中找到一些特定的节点/元素?
- python - 如何正确优化热剖面上的拟合数据?
- angular - 此页面不适用于服务器端 iis (.netcore 2.2)
- java - 使用 Maven-Cargo pluin 热部署 JavaEE 应用