根据https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging ,建议的使用方式Microsoft.Extensions.Logging
似乎是通过 ILogger
的依赖注入(inject)对象。
在依赖注入(inject)不起作用(或不能正常工作)的情况下,建议的模式是什么,例如在扩展方法、类型初始化程序、静态属性和其他传递 ILogger
的静态成员中会很麻烦吗?
使用 log4net(我的团队以前使用过),一个常见的模式是:
public static class SomeExtensions
{
private static readonly ILog s_log = LogManager.GetLogger(typeof(SomeExtensions));
public static void ExtensionMethod (this SomeType someType)
{
s_log.Info("...");
}
}
是否存在与
Microsoft.Extensions.Logging
类似的既定或推荐模式? ?
最佳答案
您可以将 Serilog 与以下内容一起使用:
using Serilog;
private static readonly ILogger log = Log.ForContext(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
关于使用 Microsoft.Extensions.Logging 从静态成员进行日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46483019/