我有一个当前使用 NLog 进行日志记录的类库。我想更新这个库以使用来自Microsoft.Extensions.Logging.AbstractionsILogger<T>
的抽象,以便这个库的使用者可以选择他们自己的日志框架。
该库使用带有私有构造函数和Instance属性的单例模式:
public static MyLibrary Instance { get; } = new MyLibrary();
private MyLibrary()
{
...
}
有什么建议可以让这个库保持单例,但允许消费者ILogger
在启动/对象创建时提供实现?有没有办法让这个库在不改变单例模式的情况下接受来自其他应用程序的日志记录实现?