我正在尝试将项目移动到.net标准,它基本上是一个类库。我正在使用log4net进行日志记录,而我正在使用该方法
public static ILog GetLogger(string name);
由于这是一个由多个项目引用的库,因此定义存储库不应该发生,因为每个项目引用此项目,定义它自己的日志记录库。在移植到.Net标准时,我该如何规避这个问题?
GetLogger
的实现很简单:
public static ILog GetLogger(string name)
{
return GetLogger(Assembly.GetCallingAssembly(), name);
}
假设您要使用类库的程序集,您可以轻松地编写自己的帮助程序方法:
private static ILog GetLogger(string name) =>
LogManager.GetLogger(typeof(SomeTypeInYourLibrary).Assembly, name);
它基本上是将程序集硬编码为“包含您指定类型的程序集”,这是您从库中调用GetLogger(string)
时总是得到的。