如何在具有单例模式的 .NET 库中使用 ILogger 抽象?

问题描述

我有一个当前使用 NLog 进行日志记录的类库。我想更新此库以使用来自 Microsoft.Extensions.Logging.AbstractionsILogger<T> 抽象,以便此库的使用者可以选择自己的日志记录框架。

该库使用带有私有构造函数和 Instance 属性的单例模式:

public static MyLibrary Instance { get; } = new MyLibrary();

private MyLibrary()
{
...
}

有什么建议可以使此库保持单例,但允许使用者在启动/对象创建时提供 ILogger 实现?有没有办法让这个库接受来自其他应用程序的日志实现而不改变单例模式?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)